AWSのSecrets Managerで特定の文字列を含むリソースにのみアクセスできるポリシーを作る
/ 2 min read
Updated:Table of Contents
はじめに
最近はAWSを触るようになっています。その中でコード上からAWSのSecrets Managerにアクセスするということをやっています。ただし、セキュリティ面も考えアクセスできるSecrets Managerのリソースは特定の文字列を含むものに制限したいという場面がありました。
初めてだったのでChatGPTに聞きつつやったところ、ポリシーのResourceにワイルドカードを使うことで制限できました。
制限の方法
例としてfuga を含むリソースのみに制限したい場合です。Resource の名前はAWS上にARNという名前で書いてあるのでそこを参考に書いています。
{ ... "Statement": [ { ... "Resource": [ "arn:aws:secretsmanager:*:*:secret:hoge/fuga/*" ] } ]}このポリシーをIAMに適用し、発行したトークンを使ってコードを動かしたところSecrets Managerから値が取れるようになりました(実際のポリシーでは他にも細かいアクセス権を付与済み)。指定した以外のリソースにアクセスしようとしたところエラーになりました。
終わりに
ワイルドカードを使って、任意の文字列を含むSecrets Managerにアクセスできるポリシーを作成しました。
今回はAWS上からボタンをポチポチして作ったので、時間があったらTerraformなどの構成管理を使って制御してみたいなと思います。