質問・問題
特定の RDS の Performance Insight のみ確認できる IAM ポリシーを作成できますか? 以下の IAM ポリシーではできませんでした。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "pi:*",
"Resource": "arn:aws:pi:us-east-1:111122223333:metrics/rds/database-1[DB 識別子]"
},
{
"Effect": "Allow",
"Action": "rds:DescribeDBInstances",
"Resource": "*"
}
]
}
上記は、以下のページを参考にしました。
Performance Insights 用のカスタム IAM ポリシーの作成
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_PerfInsights.access-control.html#USER_PerfInsights.access-control.custom-policy
回答・解決方法
特定の RDS の Performance Insight のみ確認できる IAM ポリシーの作成は可能です。Resources の箇所は、DB 識別子ではなく、db-XXXXXXXXXXXXXXXXXXXXXXXXXX のような、db- で始まる、リソース ID をご指定ください。
【リソース ID の確認手順】
- AWS マネジメントコンソールへログイン
- 「RDS」 を選択
- 左メニューから「データベース」を選択
- DB 識別子がリンクになっているので、クリック(今回の場合は、database-1)。
- 画面中央の「設定」タブを選択。
- 画面中央下のリソース ID 欄に db-XXXXXXXXXXXXXXXXXXXXXXXXXX のような、db- で始まる、リソース ID がございます。
【正しい IAM ポリシーの例】
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "pi:*",
"Resource": "arn:aws:pi:us-east-1:111122223333:metrics/rds/db-XXXXXXXXXXXXXXXXXXXXXXXXXX"
},
{
"Effect": "Allow",
"Action": "rds:DescribeDBInstances",
"Resource": "*"
}
]
}
注意点
- 上記の IAM ポリシーの Action「rds:DescribeDBInstances」の Resources は、以下の参考記事と同様に「*」と指定する必要があります。「*」を指定しないとマネジメントコンソールの Performance Insight のページで該当の RDS を選択するための選択リストが表示されません。
【参考記事】
Performance Insights 用のカスタム IAM ポリシーの作成
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_PerfInsights.access-control.html#USER_PerfInsights.access-control.custom-policy