はじめに
AWS Secrets Manager は、データベース認証情報や API キーなどの機密情報を安全に管理できるサービスです。RDS の認証情報のみを取得したい場合は、適切な IAM ポリシーを設定する必要があります。
本記事では、RDS の認証情報のみを取得できる IAM ポリシーの作成方法 について解説します。
また、セキュリティの基本原則である 最小権限の原則(Principle of Least Privilege, PoLP) に従い、不要な権限を付与しないことの重要性についても触れます。
記事を書こうと思ったきっかけ
AWS Secrets Manager を利用する際、シークレット全体に対するアクセス許可を与えるのではなく、特定のシークレット(RDS の認証情報)だけにアクセスを制限したい という要望が多くあります。
適切な IAM ポリシーを作成することで、最小権限の原則 を適用し、不要な権限によるセキュリティリスクを軽減できます。
RDS の認証情報のみを取得できる IAM ポリシー
RDS の認証情報だけを取得したい場合は、Secrets Manager の GetSecretValue
アクションのみに限定する IAM ポリシーを作成します。
ポリシー JSON
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "secretsmanager:GetSecretValue",
"Resource": "arn:aws:secretsmanager:us-east-1:123456789012:secret:rds-*"
}
]
}
ポリシーのポイント
-
secretsmanager:GetSecretValue
のみを許可し、シークレットの取得以外の操作(作成・更新・削除など)は禁止。 -
"Resource": "arn:aws:secretsmanager:us-east-1:123456789012:secret:rds-*"
により、RDS 関連のシークレットのみ取得可能。 - AWS アカウント ID とリージョンを適切なものに変更。
このポリシーは、最小権限の原則に基づき、必要なリソースにのみアクセスを許可する ように設計されています。
これにより、IAM ユーザーやロールが不要なシークレットにアクセスすることを防ぎ、セキュリティリスクを最小限に抑えます。
環境に応じた設定変更
RDS のシークレットは通常 rds-*
というプレフィックスがついていますが、環境によって異なる場合があります。その場合は、個別のシークレット ARN を指定することで適用できます。
"Resource": "arn:aws:secretsmanager:us-east-1:123456789012:secret:my-rds-credentials"
このようにリソースを細かく指定することで、アクセス権限をさらに制限し、不要なシークレットへのアクセスを防ぐ ことができます。
最小権限の重要性
IAM ポリシーを作成する際には、常に 最小権限の原則 を意識することが重要です。
なぜ最小権限が重要なのか?
-
セキュリティリスクの低減
- 不要な権限を付与すると、意図しない操作や情報漏洩のリスクが増加します。
- 例えば、Secrets Manager の
ListSecrets
を許可すると、不要なシークレットの存在を知ることができ、潜在的な攻撃の対象になり得ます。
-
内部不正の防止
- IAM ユーザーやロールに過剰な権限を与えると、内部の悪意あるアクションによってシークレットが漏洩するリスクがあります。
- 必要最低限のアクセスのみ許可することで、悪意ある操作を防ぎます。
-
コンプライアンス対応
- AWS 環境のセキュリティ基準を遵守するため、最小権限の原則を適用することが求められます。
- SOC 2、ISO 27001 などのセキュリティフレームワークでは、適切な IAM 管理が重要視されています。
最小権限を適用することで、AWS 環境の安全性を高め、リスクを最小限に抑えることができます。
まとめ
RDS の認証情報を適切に管理するために、最小権限の IAM ポリシー を設定することが重要です。
-
secretsmanager:GetSecretValue
のみ許可し、取得以外の操作は禁止する。 -
Resource
を制限し、RDS の認証情報のみにアクセスを許可する。 - 環境に応じて
rds-*
以外のプレフィックスも検討し、適切な ARN を設定する。 - 最小権限の原則を適用し、不要な権限を付与しないことがセキュリティ強化につながる。
適切な IAM ポリシーを適用し、AWS 環境のセキュリティ強化に役立ててください!