AWS CLI を使用して Parameter Store パラメータを作成する
AWS Command Line Interface (AWS CLI) を使用して、String
、StringList
、および SecureString
パラメータタイプを作成できます。パラメータを削除したら、30 秒以上待ってから同じ名前のパラメータを作成します。
パラメータは、他のパラメータの値で参照またはネストすることはできません。パラメータ値に {{}}
または {{ssm:
を含めることはできません。parameter-name
}}
注記
パラメータは、パラメータを作成した AWS リージョン でのみ使用できます。
トピック
AWS CLI を使用して String
パラメータを作成する
まだ AWS Command Line Interface (AWS CLI) をインストールして設定していない場合は、インストールして設定します。
詳細については、「AWS CLI の最新バージョンをインストールまたは更新します。」を参照してください。
-
以下のコマンドを実行して
String
タイプのパラメータを作成します。各リソースプレースホルダーの例
をユーザー自身の情報に置き換えます。-または-
次のコマンドを実行して、パラメータ値として Amazon Machine Image (AMI) ID を含むパラメータを作成します。
--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 つをパラメータに追加します。
次の例では、名前にパラメータ階層を使用して、プレーンテキストの
String
パラメータを作成します。パラメータのバージョン番号を返します。パラメータ階層の詳細については、「Parameter Store でのパラメータ階層の使用」を参照してください。 -
次のコマンドを実行して、最新のパラメータ値を表示し、新しいパラメータの詳細を確認します。
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
パラメータを作成する
まだ AWS Command Line Interface (AWS CLI) をインストールして設定していない場合は、インストールして設定します。
詳細については、「AWS CLI の最新バージョンをインストールまたは更新します。」を参照してください。
-
以下のコマンドを実行してパラメータを作成します。各
リソースプレースホルダーの例
をユーザー自身の情報に置き換えます。注記
成功すると、コマンドはパラメータのバージョン番号を返します。
この例では、キーと値のペアのタグ 2 つをパラメータに追加します。(ローカルマシンのオペレーティングシステムのタイプに応じて、次のいずれかのコマンドを実行します。ローカル Windows マシンから実行するバージョンには、コマンドラインツールからコマンドを実行するために必要なエスケープ文字 (「\」) が含まれます)。
以下に示しているのは、パラメータ階層を使用する
StringList
の例です。注記
StringList
の項目はカンマ (,) で区切る必要があります。他の句読点または特殊文字を使用してリスト内の項目をエスケープすることはできません。カンマを必要とするパラメータ値がある場合は、String
型を使用してください。 -
パラメータの詳細を確認するには、
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 キーの識別」を参照してください。
まだ AWS Command Line Interface (AWS CLI) をインストールして設定していない場合は、インストールして設定します。
詳細については、「AWS CLI の最新バージョンをインストールまたは更新します。」を参照してください。
-
以下のコマンドのいずれかを実行して、
SecureString
データ型を使用するパラメータを作成します。アカウントとリージョンで 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
)を使用しています。 -
-
パラメータの詳細を確認するには、以下のコマンドを実行します。
with-decryption
パラメータを指定しない場合、またはno-with-decryption
パラメータを指定した場合、コマンドは暗号化された GUID を返します。 -
以下のコマンドを実行して、パラメータのメタデータを表示します。
-
カスタマーマネージド AWS KMS key を使用していない場合は、以下のコマンドを実行してパラメータ値を変更します。
-または-
カスタマーマネージド AWS KMS key を使用している場合は、以下のいずれかのコマンドを実行してパラメータ値を変更します。
-
以下のコマンドを実行して、最新のパラメータ値を表示します。
-
以下のコマンドを実行して、パラメータ値の履歴を表示します。
注記
暗号化された値でパラメータを手動で作成できます。この場合、値は既に暗号化されているため、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
オプションを使用できます。
まだ AWS Command Line Interface (AWS CLI) をインストールして設定していない場合は、インストールして設定します。
詳細については、「AWS CLI の最新バージョンをインストールまたは更新します。」を参照してください。
-
次のコマンドを実行して、複数行のパラメータを作成します。
次の例では、
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>