🔐
AWS Identity Center下で個人情報を含んだCloudWatch Logsへのアクセスをスマートに制限したい
前提
- AWS Identity Centerを使って多数のAWSアカウントと多数の開発者を管理している
- AWSアカウントによって個人情報を含んだLogグループ名が異なる
- AWSアカウントごとに異なるIAMロール(アクセス権限セット)を定義することは避けたい
解決策
Tag-Based Access Control (TBAC)を使う。
タグを使用した AWS リソースへのアクセスの制御 - AWS Identity and Access Management
例
ほぼAdministratorAccess権限でよいが、個人情報へのアクセスはブロックしたい場合、以下のIAMポリシーを持ったCustomAdministratorAccessアクセス権限セットを定義する。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "*",
"Resource": "*"
},
{
"Action": [
"logs:*"
],
"Effect": "Deny",
"Resource": "*",
"Condition": {
"StringLike": {
"aws:ResourceTag/PII": "true"
}
}
}
]
}
以後、このアクセス権限セットでは PII: true
というタグが付いたLogグループにはアクセスできない。
あとは、今までAdministratorAccess権限を付与していた開発者へ代わりにこのCustomAdministratorAccess権限を付与すればよい。
備考
次の記事にまとめられているが、CloudWatch Logsの暗号化はアクセス制御には使えない。
僕のように数時間を無駄にしない要注意。
Discussion