AWS Lambda から Amazon RDS Proxy に IAM 認証する際のIAMポリシー設定例。以下のような IAM ポリシーを Lambda 実行用の IAM ロールにアタッチする。
- IAM ポリシー例
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "rds-db:connect" ], "Resource": [ "arn:aws:rds-db:ap-northeast-1:234567890123:dbuser:prx-0a4595437994303a9/awsuser" ] } ] }
Resource には RDS Proxy の arn ではなく "arn:aws:rds-db:[リージョン]:[AWSアカウントID]:dbuser:[RDS Proxy の arn の prx-** の部分]/[DBユーザー名]" を指定する。
参考
IAM ポリシーを変更することで、特定のユーザーにプロキシへのアクセスを許可できます。以下に例を示します。
"Resource": "arn:aws:rds-db:us-east-2:1234567890:dbuser:prx-ABCDEFGHIJKL01234/db_user"Amazon RDS Proxy による接続の管理 - Amazon Relational Database Service
IAM Roleの設定次に、EC2に設定しているIAM Roleに対して、IAM接続用のポリシーを設定します。「Resouce」に設定する書式は次の通りです。 region、account-id、dbi-resource-id、database-user-nameについては利用環境のものを指定します。
arn:aws:rds-db:region:account-id:dbuser:dbi-resource-id/database-user-nameTokyoリージョンで、「iam_user」というユーザの場合は、下記のようになります。(アカウントは12345678)
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "rds-db:connect" ], "Resource": [ "arn:aws:rds-db:ap-northeast-1:12345678:dbuser:cluster-XXXXXXXXXXXXXXXXXXXXXXXXXX/iam_user" ] } ] }IAM認証によるRDS接続を試してみた | DevelopersIO