RDS Proxy で IAM 認証する場合の Policy 設定
#AWS #Amazon_RDS
code:policy.json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"rds-db:connect"
],
"Resource": [
"arn:aws:rds-db:us-east-2:1234567890:dbuser:prx-xxxxxxxxxxxxxxx/db_user"
]
}
]
}
prx-xxxxx....の部分はRDS ProxyのARNの一部に見つけることができる。
IAM認証のドキュメントは以下にあるが、Aurora/MySQL/PostgreSQLに対して直接IAM認証する場合の記述しか無い。
IAM データベースアクセス用の IAM ポリシーの作成と使用 - Amazon Aurora
IAM データベースアクセス用の IAM ポリシーの作成と使用 - Amazon Relational Database Service
RDS Proxyを経由する場合、IAM認証先はProxyなのでRDSに対する接続許可ポリシーでは通らない。
この場合RDSのログには以下のように出力される。
code:log
Proxy authentication with IAM authentication failed for user "pmp_user" with TLS on. Reason: The IAM user "arn:aws:sts::1234567890:assumed-role/xxxxxx/xxxxxx" isn't authorized to perform action rds-db:connect on this proxy resource. Refer to https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.IAMPolicy.html on how to authorize the user.
一応フィードバックは送ったのでドキュメント化されることを祈る。