特定IAMユーザに特定のタグが付与されたCloudWatch Logsのみ参照を許可する IAM ポリシー


この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。

背景

以前、特定IAMユーザに特定のタグが付与されたCloudWatch Logsのみ参照できること検証したので、今回その手順を整理したいと思います。

構成図(AWS公式より抜粋)

file

file

file

手順

1.IAMポリシーの作成(特定のタグでCloudWatch Logsの参照)

ポリシー:kobayashi-tag-logs-test

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Statement1",
            "Effect": "Allow",
            "Action": "logs:DescribeLogGroups",
            "Resource": "*"
        },
        {
            "Sid": "Statement2",
            "Effect": "Allow",
            "Action": [
                "logs:DescribeLogStreams",
                "logs:GetLogEvents"
            ],
            "Resource": "arn:aws:logs:*:*:log-group:*:*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/System_Id": "${aws:PrincipalTag/System_Id}"
                }
            }
        }
    ]
}

2.IAMユーザの作成

「1.IAMポリシーの作成」で作成した「ポリシー:kobayashi-tag-logs-test」をIAMユーザ:CPI-KOBAYASHI-TESTにアタッチします。

IAMユーザ:CPI-KOBAYASHI-TEST
ポリシー:kobayashi-tag-logs-test

3.IAMユーザの特定のタグを付与

file

4.CloudWatchロググループにの特定のタグを付与

file

5.動作確認

5-1.動作確認(特定タグをつけていないロググループに参照できない)

file

file

5-2.動作確認(特定タグをつけているロググループに参照できる)

file

file

注意点

なぜ logs:DescribeLogGroups だけステートメントを分けているか疑問に思うかもしれませんが、これは DescribeLogGroups がリソース制限に対応していないためです(参考1)

AWS公式より抜
CloudWatch Logs は、aws:ResourceTag/key-name または aws:TagKeys 条件キーを使用してユーザーが指定したタグをロググループに割り当てることを禁止する IAM ポリシーをサポートしていません。さらに、DescribeLogGroups 条件キーを使用して aws:ResourceTag/key-name アクションへのアクセスを制御することはできません。他の CloudWatch Logs アクションでは、aws:ResourceTag/key-name 条件キーを使用してアクセスを制御できます。

参考

1
https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/iam-identity-based-access-control-cwl.html

2
https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html

Last modified: 2022-11-04

Author