パラメーターストアにパラメーターを格納する (ssm put-parameter)
String(文字列)
$ aws ssm put-parameter --name /myapp/param1 \
--value "value1" --type String \
--tags "Key=key1,Value=value1"
既存のパラメーターの値を更新する場合は、--overwrite
オプションが必要です(Version 情報がインクリメントされます)。
$ aws ssm put-parameter --name /myapp/param1 \
--value "value2" --type String --overwrite
Tier: Standard
Version: 2
SecureString(暗号化された文字列)
$ aws ssm put-parameter --name /myapp/param1 \
--value "secret_value" --type SecureString
デフォルトのキーは、アカウントで共通のものになります。
$ aws ssm put-parameter --name /myapp/param1 \
--value "secret_value" --type SecureString \
--key-id "<KeyId>" \
KeyId
は次のいずれかの形式で指定できます。
- ARN (Amazon Resource Name)
arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012
- エイリアス ARN
arn:aws:kms:us-east-2:123456789012:alias/MyAliasName
- キー ID
12345678-1234-1234-1234-123456789012
- エイリアス
alias/MyAliasName
独自の KMS キーを使ってパラメーターを暗号化する場合は、KMS キーの kms:Encrypt
権限が必要です。
StringList(文字列のリスト)
$ aws ssm put-parameter --name /myapp/param1 \
--value "value1,value2,value3" --type StringList
パラメーターストアからパラメーターを取得する (ssm get-parameter(s))
パラメーターの値を取得する
$ aws ssm get-parameter --name /myapp/param1 --output yaml
Parameter:
ARN: arn:aws:ssm:ap-northeast-1:123456789012:parameter/myapp/param1
DataType: text
LastModifiedDate: '2021-10-13T17:37:25.108000+09:00'
Name: /myapp/param1
Type: SecureString
Value: AQICAHhLiblDAUFGpE...(省略)...1T9iD+1QpcEWcerOhvQ==
Version: 1
SecureString の値を復号化する
パラメーターの Type が SecureString
の場合、デフォルトでは上記のように Value は暗号化された値で返されます。
Value の値を複合化するときは with-decryption
オプションを指定します。
パラメーターを複合化には、ユーザーに kms:Decrypt
権限が必要です。
$ aws ssm get-parameter --name /myapp/param1 --output yaml
Parameter:
ARN: arn:aws:ssm:ap-northeast-1:123456789012:parameter/myapp/param1
DataType: text
LastModifiedDate: '2021-10-13T17:37:25.108000+09:00'
Name: /myapp/param1
Type: SecureString
Value: "my secret value"
Version: 1
パラメーターの値だけを取得する
$ aws ssm get-parameter --name /myapp/param1 --query Parameter.Value
"Hello World"
複数のパラメーターを同時に取得する
$ aws ssm get-parameters --names /myapp/param1 /myapp/param2
コマンド名とオプション名に、複数形の s
が付くことに注意してください。
$ aws ssm get-parameters --names /myapp/param1 /myapp/param2 \
--query "Parameters[*].Value"
パラメーターストアからパラメーターを削除する (ssm delete-parameter)
$ aws ssm delete-parameter --name /myapp/param1
パラメーターストア内のパラメーターの変更履歴を取得する (ssm get-parameter-history)
aws ssm put-parameter
でパラメーターの値を変更した場合に、その変更履歴を確認したいときは、ssm get-parameter-history
コマンドを使用します。
$ aws ssm get-parameter-history --name /myapp/param1
パラメーターを検索する (ssm describe-parameters)
$ aws ssm describe-parameters \
--parameter-filters "Key=Name,Option=BeginsWith,Values=/myapp/dev/"
Option=BeginsWith,
の部分を省略すると、デフォルトの Option=Equals
扱いになり、完全一致での検索になります。
$ aws ssm describe-parameters \
--parameter-filters "Key=Name,Option=Contains,Values=GitHub"
出力結果に、パラメータの「値」自体は含まれません。
- 参考: describe-parameters — AWS CLI Command Reference
- 参考: Systems Manager のパラメータを検索する - AWS Systems Manager