使うコマンド
$ aws ssm put-patameter
文字列をそのまま入れる
$ aws ssm put-parameter --name "test" --type "String" --value "hello"
{
"Version": 1
}
ssm get-parameters
で取得できます。
$ aws ssm get-parameters --name "test" | jq .
{
"InvalidParameters": [],
"Parameters": [
{
"Name": "test",
"LastModifiedDate": 1540291994.341,
"Value": "hello",
"Version": 1,
"Type": "String",
"ARN": "arn:aws:ssm:ap-northeast-1:99999:parameter/test"
}
]
}
上書きする
アクション名はputですが、そのまま実行すると怒られます。
$ aws ssm put-parameter --name "test" --type "String" --value "hello world"
An error occurred (ParameterAlreadyExists) when calling the PutParameter operation: The parameter already exists. To overwrite this value, set the overwrite option in the request to true.
--overwrite
オプションをつけて、明示的に上書きしましょう。
$ aws ssm put-parameter --name "test" --type "String" --value "hello world" --overwrite
{
"Version": 2
}
getすると、新しいバージョンのデータが取れます。
{
"InvalidParameters": [],
"Parameters": [
{
"Name": "test",
"LastModifiedDate": 1540292106.049,
"Value": "hello world",
"Version": 2,
"Type": "String",
"ARN": "arn:aws:ssm:ap-northeast-1:99999:parameter/test"
}
]
}
以前のバージョンは、get-parameter-history
で確認できます。
$ aws ssm get-parameter-history --name "test" | jq .
{
"Parameters": [
{
"Name": "test",
"LastModifiedDate": 1540291994.341,
"Labels": [],
"Value": "hello",
"Version": 1,
"LastModifiedUser": "arn:aws:iam::999999:user/developer",
"Type": "String"
},
{
"Name": "test",
"LastModifiedDate": 1540292106.049,
"Labels": [],
"Value": "hello world",
"Version": 2,
"LastModifiedUser": "arn:aws:iam::999999:user/developer",
"Type": "String"
}
]
}
誰が更新したかも記録してくれてるみたいですね。
セキュアに保存する
パスワードやtokenなどは、平文で保存したくないものです。
その場合はtype=SecureString
でputしましょう。
比較がしやすいので、--overwrite
でいきます。
$ aws ssm put-parameter --name "test" --type "SecureString" --value "hello world" --overwrite
{
"Version": 3
}
Historyでみると、Version: 3だけ暗号化されていますね。
$ aws ssm get-parameter-history --name "test" | jq .
{
"Parameters": [
{
"Name": "test",
"LastModifiedDate": 1540291994.341,
"Labels": [],
"Value": "hello",
"Version": 1,
"LastModifiedUser": "arn:aws:iam::999999:user/developer",
"Type": "String"
},
{
"Name": "test",
"LastModifiedDate": 1540292106.049,
"Labels": [],
"Value": "hello world",
"Version": 2,
"LastModifiedUser": "arn:aws:iam::999999:user/developer",
"Type": "String"
},
{
"KeyId": "alias/aws/ssm",
"Name": "test",
"LastModifiedDate": 1540292264.596,
"Labels": [],
"Value": "AQICAHhpaogOe4fhQlvnUVPt0gxy8Q22XJVDE6qLcPVeg5TPEQGYPCmVdGBS8FFRbBM7HZxVAAAAaTBnBgkqhkiG9w0BBwagWjBYAgEAMFMGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMW5oTfRpPrcv8u+JvAgEQgCZ+g900m/CE7TGKmc55EAaclq2rvoDtMuSkoclDT+63ZRccx5Rlyg==",
"Version": 3,
"LastModifiedUser": "arn:aws:iam::999999:user/developer",
"Type": "SecureString"
}
]
}
暗号化したものを復号する
AWS CLIから復号したものをとる場合、get-parameters
の--with-decryption
を使います。
$ aws ssm get-parameters --name "test" --with-decryption
{
"InvalidParameters": [],
"Parameters": [
{
"Name": "test",
"LastModifiedDate": 1540292264.596,
"Value": "hello world",
"Version": 3,
"Type": "SecureString",
"ARN": "arn:aws:ssm:ap-northeast-1:999999:parameter/test"
}
]
}
後片付け
遊んだ後は、delete-parameter
でちゃんとお掃除しましょう。
$ aws ssm delete-parameter --name test