🔐

AWS Identity Center下で個人情報を含んだCloudWatch Logsへのアクセスをスマートに制限したい

2024/09/02に公開

前提

  • 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