AWS CLI を使用して Parameter Store パラメータを作成する - AWS Systems Manager

AWS CLI を使用して Parameter Store パラメータを作成する

AWS Command Line Interface (AWS CLI) を使用して、StringStringList、および SecureString パラメータタイプを作成できます。パラメータを削除したら、30 秒以上待ってから同じ名前のパラメータを作成します。

パラメータは、他のパラメータの値で参照またはネストすることはできません。パラメータ値に {{}} または {{ssm:parameter-name}} を含めることはできません。

注記

パラメータは、パラメータを作成した AWS リージョン でのみ使用できます。

AWS CLI を使用して String パラメータを作成する

  1. まだ AWS Command Line Interface (AWS CLI) をインストールして設定していない場合は、インストールして設定します。

    詳細については、「AWS CLI の最新バージョンをインストールまたは更新します。」を参照してください。

  2. 以下のコマンドを実行して String タイプのパラメータを作成します。各リソースプレースホルダーの例をユーザー自身の情報に置き換えます。

    Linux & macOS
    aws ssm put-parameter \ --name "parameter-name" \ --value "parameter-value" \ --type String \ --tags "Key=tag-key,Value=tag-value"
    Windows
    aws ssm put-parameter ^ --name "parameter-name" ^ --value "parameter-value" ^ --type String ^ --tags "Key=tag-key,Value=tag-value"

    -または-

    次のコマンドを実行して、パラメータ値として Amazon Machine Image (AMI) ID を含むパラメータを作成します。

    Linux & macOS
    aws ssm put-parameter \ --name "parameter-name" \ --value "an-AMI-id" \ --type String \ --data-type "aws:ec2:image" \ --tags "Key=tag-key,Value=tag-value"
    Windows
    aws ssm put-parameter ^ --name "parameter-name" ^ --value "an-AMI-id" ^ --type String ^ --data-type "aws:ec2:image" ^ --tags "Key=tag-key,Value=tag-value"

    --name オプションは階層をサポートしています。階層については、「Parameter Store でのパラメータ階層の使用」を参照してください。

    --data-type オプションは、AMI ID を含むパラメータを作成する場合にのみ指定する必要があります。入力したパラメータ値が、適切に書式設定された Amazon Elastic Compute Cloud (Amazon EC2) AMI ID であることを確認します。他のすべてのパラメータの場合、デフォルトのデータ型は text であり、値の指定はオプションです。詳細については、「」を参照してくださいAmazon マシンイメージ ID の Parameter Store でのパラメータのネイティブサポートの利用

    重要

    成功すると、コマンドはパラメータのバージョン番号を返します。例外: データ型として aws:ec2:image を指定した場合、レスポンスの新しいバージョン番号が意味するのは、パラメータ値が未検証であるということです。詳細については、「」を参照してくださいAmazon マシンイメージ ID の Parameter Store でのパラメータのネイティブサポートの利用

    以下の例では、キーと値のペアのタグ 2 つをパラメータに追加します。

    Linux & macOS
    aws ssm put-parameter \ --name parameter-name \ --value "parameter-value" \ --type "String" \ --tags '[{"Key":"Region","Value":"East"},{"Key":"Environment", "Value":"Production"}]'
    Windows
    aws ssm put-parameter ^ --name parameter-name ^ --value "parameter-value" ^ --type "String" ^ --tags [{\"Key\":\"Region1\",\"Value\":\"East1\"},{\"Key\":\"Environment1\",\"Value\":\"Production1\"}]

    次の例では、名前にパラメータ階層を使用して、プレーンテキストの String パラメータを作成します。パラメータのバージョン番号を返します。パラメータ階層の詳細については、「Parameter Store でのパラメータ階層の使用」を参照してください。

    Linux & macOS

    階層にないパラメータ

    aws ssm put-parameter \ --name "golden-ami" \ --type "String" \ --value "ami-12345abcdeEXAMPLE"

    階層内のパラメータ

    aws ssm put-parameter \ --name "/amis/linux/golden-ami" \ --type "String" \ --value "ami-12345abcdeEXAMPLE"
    Windows

    階層にないパラメータ

    aws ssm put-parameter ^ --name "golden-ami" ^ --type "String" ^ --value "ami-12345abcdeEXAMPLE"

    階層内のパラメータ

    aws ssm put-parameter ^ --name "/amis/windows/golden-ami" ^ --type "String" ^ --value "ami-12345abcdeEXAMPLE"
  3. 次のコマンドを実行して、最新のパラメータ値を表示し、新しいパラメータの詳細を確認します。

    aws ssm get-parameters --names "/Test/IAD/helloWorld"

    システムが以下のような情報を返します。

    {
        "InvalidParameters": [],
        "Parameters": [
            {            
                "Name": "/Test/IAD/helloWorld",
                "Type": "String",
                "Value": "My updated parameter value",
                "Version": 2,
                "LastModifiedDate": "2020-02-25T15:55:33.677000-08:00",
                "ARN": "arn:aws:ssm:us-east-2:123456789012:parameter/Test/IAD/helloWorld"            
            }
        ]
    }

以下のコマンドを実行して、パラメータの値を変更します。パラメータのバージョン番号を返します。

aws ssm put-parameter --name "/Test/IAD/helloWorld" --value "My updated 1st parameter" --type String --overwrite

以下のコマンドを実行して、パラメータ値の履歴を表示します。

aws ssm get-parameter-history --name "/Test/IAD/helloWorld"

以下のコマンドを実行して、このパラメータをコマンドで使用します。

aws ssm send-command --document-name "AWS-RunShellScript" --parameters '{"commands":["echo {{ssm:/Test/IAD/helloWorld}}"]}' --targets "Key=instanceids,Values=instance-ids"

パラメータ Value のみを取得する場合は、次のコマンドを実行します。

aws ssm get-parameter --name testDataTypeParameter --query "Parameter.Value"

get-parameters を使用してパラメータ Value だけを取得する場合は、次のコマンドを実行します。

aws ssm get-parameters --names "testDataTypeParameter" --query "Parameters[*].Value"

以下のコマンドを実行して、パラメータのメタデータを表示します。

aws ssm describe-parameters --filters "Key=Name,Values=/Test/IAD/helloWorld"
注記

[Name] は大文字である必要があります。

システムが以下のような情報をレスポンスします。

{
    "Parameters": [
        {
            "Name": "helloworld",
            "Type": "String",
            "LastModifiedUser": "arn:aws:iam::123456789012:user/JohnDoe",
            "LastModifiedDate": 1494529763.156,
            "Version": 1,
            "Tier": "Standard",
            "Policies": []           
        }
    ]
}

AWS CLI を使用して StringList パラメータを作成する

  1. まだ AWS Command Line Interface (AWS CLI) をインストールして設定していない場合は、インストールして設定します。

    詳細については、「AWS CLI の最新バージョンをインストールまたは更新します。」を参照してください。

  2. 以下のコマンドを実行してパラメータを作成します。各リソースプレースホルダーの例をユーザー自身の情報に置き換えます。

    Linux & macOS
    aws ssm put-parameter \ --name "parameter-name" \ --value "a-comma-separated-list-of-values" \ --type StringList \ --tags "Key=tag-key,Value=tag-value"
    Windows
    aws ssm put-parameter ^ --name "parameter-name" ^ --value "a-comma-separated-list-of-values" ^ --type StringList ^ --tags "Key=tag-key,Value=tag-value"
    注記

    成功すると、コマンドはパラメータのバージョン番号を返します。

    この例では、キーと値のペアのタグ 2 つをパラメータに追加します。(ローカルマシンのオペレーティングシステムのタイプに応じて、次のいずれかのコマンドを実行します。ローカル Windows マシンから実行するバージョンには、コマンドラインツールからコマンドを実行するために必要なエスケープ文字 (「\」) が含まれます)。

    以下に示しているのは、パラメータ階層を使用する StringList の例です。

    Linux & macOS
    aws ssm put-parameter \ --name /IAD/ERP/Oracle/addUsers \ --value "Milana,Mariana,Mark,Miguel" \ --type StringList
    Windows
    aws ssm put-parameter ^ --name /IAD/ERP/Oracle/addUsers ^ --value "Milana,Mariana,Mark,Miguel" ^ --type StringList
    注記

    StringList の項目はカンマ (,) で区切る必要があります。他の句読点または特殊文字を使用してリスト内の項目をエスケープすることはできません。カンマを必要とするパラメータ値がある場合は、String 型を使用してください。

  3. パラメータの詳細を確認するには、get-parameters コマンドを実行します。例:

    aws ssm get-parameters --name "/IAD/ERP/Oracle/addUsers"

AWS CLI を使用して SecureString パラメータを作成する

SecureString パラメータを作成するには、次の手順を使用します。各リソースプレースホルダーの例をユーザー自身の情報に置き換えます。

重要

SecureString パラメータののみが暗号化されます。パラメータ名、説明などのプロパティは暗号化されません。

重要

Parameter Store では、対称暗号化 KMS キーのみをサポートしています。非対称暗号化 KMS キーを使用してパラメータを暗号化することはできません。KMS キーが対称か非対称かを判断する方法については、「AWS Key Management Service デベロッパーガイド」の「対称キーと非対称 KMS キーの識別」を参照してください。

  1. まだ AWS Command Line Interface (AWS CLI) をインストールして設定していない場合は、インストールして設定します。

    詳細については、「AWS CLI の最新バージョンをインストールまたは更新します。」を参照してください。

  2. 以下のコマンドのいずれかを実行して、SecureString データ型を使用するパラメータを作成します。

    Linux & macOS

    デフォルトの AWS マネージドキーを使用して SecureString パラメータを作成する

    aws ssm put-parameter \ --name "parameter-name" \ --value "parameter-value" \ --type "SecureString"

    カスタマーマネージドキーを使用する SecureString パラメータを作成する

    aws ssm put-parameter \ --name "parameter-name" \ --value "a-parameter-value, for example P@ssW%rd#1" \ --type "SecureString" --tags "Key=tag-key,Value=tag-value"

    カスタム AWS KMS キーを使用する SecureString パラメータを作成する

    aws ssm put-parameter \ --name "parameter-name" \ --value "a-parameter-value, for example P@ssW%rd#1" \ --type "SecureString" \ --key-id "your-account-ID/the-custom-AWS KMS-key" \ --tags "Key=tag-key,Value=tag-value"
    Windows

    デフォルトの AWS マネージドキーを使用して SecureString パラメータを作成する

    aws ssm put-parameter ^ --name "parameter-name" ^ --value "parameter-value" ^ --type "SecureString"

    カスタマーマネージドキーを使用する SecureString パラメータを作成する

    aws ssm put-parameter ^ --name "parameter-name" ^ --value "a-parameter-value, for example P@ssW%rd#1" ^ --type "SecureString" ^ --tags "Key=tag-key,Value=tag-value"

    カスタム AWS KMS キーを使用する SecureString パラメータを作成する

    aws ssm put-parameter ^ --name "parameter-name" ^ --value "a-parameter-value, for example P@ssW%rd#1" ^ --type "SecureString" ^ --key-id " ^ --tags "Key=tag-key,Value=tag-value"account-ID/the-custom-AWS KMS-key"

    アカウントとリージョンで AWS マネージドキーを使用して SecureString パラメータを作成する場合、--key-id パラメータの値を指定する必要はありません。

    注記

    AWS アカウント と AWS リージョン に割り当てられた AWS KMS key を使用するには、コマンドから key-id パラメータを削除します。AWS KMS keys の詳細については、AWS Key Management Serviceデベロッパーガイドの「AWS Key Management Service の概念」を参照してください。

    アカウントに割り当てられた AWS マネージドキー の代わりにカスタマーマネージドキーを使用するには、--key-id パラメータを使用してキーを指定します。パラメータは以下の KMS パラメータ形式をサポートします。

    • キーの Amazon リソースネーム (ARN) の例:

      arn:aws:kms:us-east-2:123456789012:key/key-id

    • エイリアス ARN の例:

      arn:aws:kms:us-east-2:123456789012:alias/alias-name

    • キー ID の例:

      12345678-1234-1234-1234-123456789012

    • エイリアス名の例:

      alias/MyAliasName

    カスタマーマネージドキーを作成するには、AWS Management Console または AWS KMS API を使用します。以下の AWS CLI コマンドは、AWS アカウント の現在の AWS リージョン でカスタマーマネージドキーを作成します。

    aws kms create-key

    先ほど作成したキーを使用して、SecureString パラメータを作成するには、以下の形式のコマンドを使用します。

    以下の例では、パスワードパラメータと AWS KMS key 向けに難読化された名前(3l3vat3131)を使用しています。

    Linux & macOS
    aws ssm put-parameter \ --name /Finance/Payroll/3l3vat3131 \ --value "P@sSwW)rd" \ --type SecureString \ --key-id arn:aws:kms:us-east-2:123456789012:key/1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e
    Windows
    aws ssm put-parameter ^ --name /Finance/Payroll/3l3vat3131 ^ --value "P@sSwW)rd" ^ --type SecureString ^ --key-id arn:aws:kms:us-east-2:123456789012:key/1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e
  3. パラメータの詳細を確認するには、以下のコマンドを実行します。

    with-decryption パラメータを指定しない場合、または no-with-decryption パラメータを指定した場合、コマンドは暗号化された GUID を返します。

    Linux & macOS
    aws ssm get-parameters \ --name "the-parameter-name-you-specified" \ --with-decryption
    Windows
    aws ssm get-parameters ^ --name "the-parameter-name-you-specified" ^ --with-decryption
  4. 以下のコマンドを実行して、パラメータのメタデータを表示します。

    Linux & macOS
    aws ssm describe-parameters \ --filters "Key=Name,Values=the-name-that-you-specified"
    Windows
    aws ssm describe-parameters ^ --filters "Key=Name,Values=the-name-that-you-specified"
  5. カスタマーマネージド AWS KMS key を使用していない場合は、以下のコマンドを実行してパラメータ値を変更します。

    Linux & macOS
    aws ssm put-parameter \ --name "the-name-that-you-specified" \ --value "a-new-parameter-value" \ --type "SecureString" \ --overwrite
    Windows
    aws ssm put-parameter ^ --name "the-name-that-you-specified" ^ --value "a-new-parameter-value" ^ --type "SecureString" ^ --overwrite

    -または-

    カスタマーマネージド AWS KMS key を使用している場合は、以下のいずれかのコマンドを実行してパラメータ値を変更します。

    Linux & macOS
    aws ssm put-parameter \ --name "the-name-that-you-specified" \ --value "a-new-parameter-value" \ --type "SecureString" \ --key-id "the-KMSkey-ID" \ --overwrite
    aws ssm put-parameter \ --name "the-name-that-you-specified" \ --value "a-new-parameter-value" \ --type "SecureString" \ --key-id "account-alias/the-KMSkey-ID" \ --overwrite
    Windows
    aws ssm put-parameter ^ --name "the-name-that-you-specified" ^ --value "a-new-parameter-value" ^ --type "SecureString" ^ --key-id "the-KMSkey-ID" ^ --overwrite
    aws ssm put-parameter ^ --name "the-name-that-you-specified" ^ --value "a-new-parameter-value" ^ --type "SecureString" ^ --key-id "account-alias/the-KMSkey-ID" ^ --overwrite
  6. 以下のコマンドを実行して、最新のパラメータ値を表示します。

    Linux & macOS
    aws ssm get-parameters \ --name "the-name-that-you-specified" \ --with-decryption
    Windows
    aws ssm get-parameters ^ --name "the-name-that-you-specified" ^ --with-decryption
  7. 以下のコマンドを実行して、パラメータ値の履歴を表示します。

    Linux & macOS
    aws ssm get-parameter-history \ --name "the-name-that-you-specified"
    Windows
    aws ssm get-parameter-history ^ --name "the-name-that-you-specified"
注記

暗号化された値でパラメータを手動で作成できます。この場合、値は既に暗号化されているため、SecureString パラメータタイプを選択する必要はありません。SecureString を選択した場合、パラメータは二重に暗号化されます。

デフォルトでは、すべての SecureString 値が暗号化テキストとして表示されます。SecureString 値を復号するには、AWS KMS の Decrypt API オペレーションを呼び出すためのアクセス権限が必要です。AWS KMS アクセスコントロールの設定方法については、「AWS Key Management Service デベロッパーガイド」の「AWS KMS に対する認証とアクセスコントロール」を参照してください。

重要

パラメータの暗号化に使用される KMS キーの KMS キーエイリアスを変更する場合は、パラメータが AWS KMS の参照で使用するキーエイリアスも更新する必要があります。これは KMS キーエイリアスにのみ適用されます。エイリアスがアタッチするキー ID は、キー全体を削除しない限り、同じままになります。

AWS CLI を使用して複数行パラメータを作成する

AWS CLI を使用して、改行を含むパラメータを作成できます。改行すると、長いパラメータ値のテキストを分割して読みやすくすることができ、たとえば、ウェブページの複数段落のパラメータコンテンツを更新できます。次の例に示すように、JSON ファイルにコンテンツを含めると、--cli-input-json のような改行文字を使用して \n オプションを使用できます。

  1. まだ AWS Command Line Interface (AWS CLI) をインストールして設定していない場合は、インストールして設定します。

    詳細については、「AWS CLI の最新バージョンをインストールまたは更新します。」を参照してください。

  2. 次のコマンドを実行して、複数行のパラメータを作成します。

    Linux & macOS
    aws ssm put-parameter \ --name "MultiLineParameter" \ --type String \ --cli-input-json file://MultiLineParameter.json
    Windows
    aws ssm put-parameter ^ --name "MultiLineParameter" ^ --type String ^ --cli-input-json file://MultiLineParameter.json

    次の例では、MultiLineParameter.json ファイルの内容を示します。

    { "Value": "<para>Paragraph One</para>\n<para>Paragraph Two</para>\n<para>Paragraph Three</para>" }

保存されたパラメータ値は、次のように保存されます。

<para>Paragraph One</para>
<para>Paragraph Two</para>
<para>Paragraph Three</para>