まくろぐ

AWS SSM のポリシーステートメント例

更新:
作成:

パラメーターの説明情報の取得

すべてのパラメーターの説明情報を取得できるようにする
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:DescribeParameters"
            ],
            "Resource": "*"
        }
    ]
}

ssm:DescribeParameters は、SSM パラメーターストアに格納されたパラメーターの説明情報を取得する権限です。 この権限だけでは、パラメーターの「値」自体は取得できないことに注意してください。

パラメーターの値の取得

prod- で始まるパラメーターの値を取得できるようにする
{
    "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 だけだと、パラメーターの一覧取得などが許可されません。

パラメーターの追加・削除

prod- で始まるパラメーターの追加と削除を許可する
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:PutParameter",
                "ssm:DeleteParameter",
                "ssm:DeleteParameters"
            ],
            "Resource": "arn:aws:ssm:<Region>:<Account>:parameter/prod-*"
        }
    ]
}

暗号化されたパラメーター (SecureString) の取得

暗号化された prod- で始まるパラメーターを読み込む
{
   "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-*"
            ]
        }
    ]
}

関連記事

まくろぐ
サイトマップまくへのメッセージ