Parameter Store でのパラメータバージョンの使用 - AWS Systems Manager

Parameter Store でのパラメータバージョンの使用

パラメータの値を編集するたびに、AWS Systems Manager の一機能である Parameter Store はパラメータの新しいバージョンを作成し、以前のバージョンを保持します。最初にパラメータを作成すると、Parameter Store はそのパラメータにバージョン 1 を割り当てます。パラメータの値を変更すると、Parameter Store により自動的にバージョン番号が 1 つ上がります。パラメータの履歴にあるすべてのバージョンの詳細 (値を含む) を表示できます。

API コマンドおよび SSM ドキュメントで使用するパラメータのバージョンを指定することもできます (例: ssm:MyParameter:3) 。API コールと SSM ドキュメントでは、パラメータ名と特定のバージョン番号を指定できます。バージョン番号を指定しない場合は、自動的に最新バージョンが使用されます。存在しないバージョンの番号を指定すると、システムはパラメータの最新バージョンまたはデフォルトバージョンにフォールバックするのではなく、エラーを返します。

パラメータバージョンを使用して、一定期間にわたるパラメータの変更回数を確認することもできます。パラメータバージョンでは、パラメータ値が誤って変更された場合、保護のレイヤーも提供されます。

パラメータは最大 100 バージョンまで作成および保守できます。100 バージョンのパラメータを作成した後は、新しいバージョンを作成するたびに、履歴から最も古いバージョンのパラメータが削除され、新しいバージョン用のスペースが作成されます。

この例外は、履歴にすでに 100 個のパラメータバージョンがあり、パラメータの最も古いバージョンにパラメータラベルが割り当てられている場合です。この場合、そのバージョンは履歴から削除されず、新しいパラメータバージョンを作成する要求は失敗します。この保護は、ミッションクリティカルラベルが割り当てられているパラメータバージョンが削除されないようにするためです。新しいパラメータの作成を続行するには、最初に最も古いバージョンのパラメータから、操作で使用するために、ラベルを新しいバージョンのパラメータに移動します。パラメータラベルの移動については、「コンソールを使用してパラメータラベルを移動する」および「AWS CLI を使用してパラメータラベルを移動する」を参照してください。

次の手順では、パラメータを編集し、新しいバージョンが作成されたことを確認する方法を示します。get-parameter コマンドと get-parameters コマンドを使用して、パラメータバージョンを表示できます。これらのコマンドの使用例については、AWS Systems Manager API リファレンスGetParameterGetParameters を参照してください。

コンソールを使用してパラメータの新しいバージョンを作成する

Systems Manager コンソールを使用して、パラメータの新しいバージョンを作成し、パラメータのバージョン履歴を表示できます。

パラメータの新しいバージョンを作成するには
  1. AWS Systems Manager コンソール (https://console.aws.amazon.com/systems-manager/) を開きます。

  2. ナビゲーションペインで、[Parameter Store] を選択します。

  3. 前に作成したパラメータの名前を選択します。新しいパラメータの作成については、「Systems Manager での Parameter Store パラメータの作成」を参照してください。

  4. [Edit] を選択します。

  5. [Value] ボックスに、新しい値を入力し、[Save changes] を選択します。

  6. 更新したパラメータの名前を選択します。[Overview] タブで、バージョン番号が 1 つ増えたことを確認し、新しい値を確認します。

  7. パラメータのすべてのバージョンの履歴を表示するには、[履歴] タブを選択します。

パラメータバージョンを参照する

コマンド、API コール、SSM ドキュメントで特定のパラメータバージョンを参照するには、ssm: parameter-name:version-number という形式を使用できます。

次の例では、run-instances command パラメータのバージョン 3 が Amazon Elastic Compute Cloud (Amazon EC2) golden-ami で使用されています。

Linux & macOS
aws ec2 run-instances \ --image-id resolve:ssm:/golden-ami:3 \ --count 1 \ --instance-type t2.micro \ --key-name my-key-pair \ --security-groups my-security-group
Windows
aws ec2 run-instances ^ --image-id resolve:ssm:/golden-ami:3 ^ --count 1 ^ --instance-type t2.micro ^ --key-name my-key-pair ^ --security-groups my-security-group
注記

resolve とパラメータ値は、--image-id オプション、および Amazon Machine Image (AMI) を値として含むパラメータと共にのみ使用できます。詳細については、「」を参照してくださいAmazon マシンイメージ ID の Parameter Store でのパラメータのネイティブサポートの利用

次に、SSM ドキュメント内の MyRunCommandParameter という名前のパラメータのバージョン 2 を指定する例を示します。

YAML
--- schemaVersion: '2.2' description: Run a shell script or specify the commands to run. parameters: commands: type: String description: "(Required) Specify a shell script or a command to run." displayType: textarea default: "{{ssm:MyRunCommandParameter:2}}" mainSteps: - action: aws:runShellScript name: RunScript inputs: runCommand: - "{{commands}}"
JSON
{ "schemaVersion": "2.2", "description": "Run a shell script or specify the commands to run.", "parameters": { "commands": { "type": "String", "description": "(Required) Specify a shell script or a command to run.", "displayType": "textarea", "default": "{{ssm:MyRunCommandParameter:2}}" } }, "mainSteps": [ { "action": "aws:runShellScript", "name": "RunScript", "inputs": { "runCommand": [ "{{commands}}" ] } } ] }