パラメーターの説明情報の取得
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ssm:DescribeParameters"
],
"Resource": "*"
}
]
}
ssm:DescribeParameters
は、SSM パラメーターストアに格納されたパラメーターの説明情報を取得する権限です。
この権限だけでは、パラメーターの「値」自体は取得できないことに注意してください。
パラメーターの値の取得
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ssm:GetParameter*"
],
"Resource": "arn:aws:ssm:<Region>:<Account>:parameter/prod-*"
}
]
}
パラメーターの Get 系アクションには、GetParameter/GetParameters/GetParameterHistory/GetParametersByPath など いろいろある ため、上記のように ssm:GetParameter*
とワイルドカード指定しておくと確実に取得できるようになります。
GetParameter
だけだと、パラメーターの一覧取得などが許可されません。
パラメーターの追加・削除
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ssm:PutParameter",
"ssm:DeleteParameter",
"ssm:DeleteParameters"
],
"Resource": "arn:aws:ssm:<Region>:<Account>:parameter/prod-*"
}
]
}
暗号化されたパラメーター (SecureString) の取得
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ssm:GetParameter*"
],
"Resource": [
"arn:aws:ssm:<Region>:<Account>:parameter/prod-*"
]
},
{
"Effect": "Allow",
"Action": [
"kms:Decrypt"
],
"Resource": [
"arn:aws:kms:<Region>:<Account>:key/<KmsKey>"
]
}
]
}
SSM パラメーターストアに SecureString タイプとして格納されたパラメーターは、KMS キーによって暗号化されています。
このパラメーターの値を取得するには、ssm:GetParameter*
によるパラメーター読み取り権限と、kms:Decrypt
による複合化の権限が必要です。
暗号化されたパラメーター (SecureString) の作成
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ssm:PutParameter"
],
"Resource": [
"arn:aws:ssm:<Region>:<Account>:parameter/prod-*"
]
},
{
"Effect": "Allow",
"Action": [
"kms:Encrypt",
"kms:GenerateDataKey" // 暗号化された詳細パラメータの作成に必要
],
"Resource": [
"arn:aws:kms:<Region>:<Account>:key/<KmsKey>"
]
}
]
}
Principal で特定のユーザーに権限を絞る
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Allow SSM parameter access for maku",
"Effect": "Allow",
"Principal": {"AWS": "arn:aws:iam::111122223333:user/maku"},
"Action": [
"ssm:PutParameter",
"ssm:DeleteParameter",
"ssm:DeleteParameters"
],
"Resource": [
"arn:aws:ssm:<Region>:<Account>:parameter/prod-*"
]
}
]
}