IAM マネージドポリシー CloudWatchFullAccess が廃止されます

記事タイトルとURLをコピーする

みなさん、こんにちは。
AWS CLI が好きなテクニカルサポート課の市野です。

この度、既存の IAM マネージドポリシーに廃止の案内がありましたので、ご案内となります。

2023年11月28日 追記

2023年11月27日 〜28日にかけて、再度下記の件名で AWS 通知が行われており、"CloudWatchFullAccess" が廃止され、"CloudWatchFullAccessV2" に変更すると案内していたものを、お客様からのフィードバックに基づき、両方のポリシーのサポートの継続を行うと修正通知が行われています。

[Correction] Changes to AWS Managed Policy [AWS Account: ${AWS_ACCOUNT_ID}]

2023年10月24日前後に配信された AWS 通知に対するご注意

解説に先立ちまして、本件について行われた AWS 通知についてのご注意がございます。

当該の IAM マネージドポリシー CloudWatchFullAccess をご利用になっている(何らかの IAM エンティティにアタッチしている)お客様へ向けて、2023年10月24日前後に以下の件名で AWS より通知がされているかと思います。

[Action Required] Changes to AWS Managed Policy [AWS Account: ${AWS_ACCOUNT_ID}]

通知文中には、2023年12月7日 に当該のポリシーが廃止されるように読み取れる箇所がございましたが、AWS サポートへ確認したところ、「2023年12月7日に廃止」ではなく、「将来的に廃止されることが予定されている」が正しい情報とのことでした。

とはいえ、将来的に廃止が予定されていることと、新しく用意されている CloudWatchFullAccessV2 を推奨していることに変わりはないため、許可されるアクションの内容をご確認いただき、早めの切り替えをお勧めすることに変わりはございません。

変更点

それぞれのポリシーの内容について、確認をしてみます。

CloudWatchFullAccess

従来の CloudWatchFullAccess の中身は以下のとおりです。

{
    "Version": "2012-10-17",
    "Statement": [{
            "Effect": "Allow",
            "Action": [
                "autoscaling:Describe*",
                "cloudwatch:*",
                "logs:*",
                "sns:*",
                "iam:GetPolicy",
                "iam:GetPolicyVersion",
                "iam:GetRole",
                "oam:ListSinks"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "iam:CreateServiceLinkedRole",
            "Resource": "arn:aws:iam::*:role/aws-service-role/events.amazonaws.com/AWSServiceRoleForCloudWatchEvents*",
            "Condition": {
                "StringLike": {
                    "iam:AWSServiceName": "events.amazonaws.com"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "oam:ListAttachedLinks"
            ],
            "Resource": "arn:aws:oam:*:*:sink/*"
        }
    ]
}

CloudWatchFullAccessV2

対して CloudWatchFullAccessV2 の中身は以下のとおりとなっていました。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "CloudWatchFullAccessPermissions",
            "Effect": "Allow",
            "Action": [
                "application-autoscaling:DescribeScalingPolicies",
                "autoscaling:DescribeAutoScalingGroups",
                "autoscaling:DescribePolicies",
                "cloudwatch:*",
                "logs:*",
                "sns:CreateTopic",
                "sns:ListSubscriptions",
                "sns:ListSubscriptionsByTopic",
                "sns:ListTopics",
                "sns:Subscribe",
                "iam:GetPolicy",
                "iam:GetPolicyVersion",
                "iam:GetRole",
                "oam:ListSinks"
            ],
            "Resource": "*"
        },
        {
            "Sid": "EventsServicePermissions",
            "Effect": "Allow",
            "Action": "iam:CreateServiceLinkedRole",
            "Resource": "arn:aws:iam::*:role/aws-service-role/events.amazonaws.com/AWSServiceRoleForCloudWatchEvents*",
            "Condition": {
                "StringLike": {
                    "iam:AWSServiceName": "events.amazonaws.com"
                }
            }
        },
        {
            "Sid": "OAMReadPermissions",
            "Effect": "Allow",
            "Action": [
                "oam:ListAttachedLinks"
            ],
            "Resource": "arn:aws:oam:*:*:sink/*"
        }
    ]
}

両者の比較

詳細は、下記の表にまとめましたが、CloudWatchFullAccess では autoscaling:Describe* と広めの指定だったアクションが、CloudWatchFullAccessV2 では、"autoscaling:DescribeAutoScalingGroups" および、"autoscaling:DescribePolicies" と限定的に記載されています。

同様に、"sns:*" と広めの指定だったアクションも、"sns:CreateTopic", "sns:ListSubscriptions", "sns:ListSubscriptionsByTopic", "sns:ListTopics" および "sns:Subscribe" とより限定的に指定されるようになっています。

また、Application Auto Scaling のスケーリングポリシーを取得するためのアクションが追加されています。

サービス CloudWatchFullAccess CloudWatchFullAccessV2
autoscaling "autoscaling:Describe*" "autoscaling:DescribeAutoScalingGroups"
"autoscaling:DescribePolicies"
application-autoscaling なし "application-autoscaling:DescribeScalingPolicies"
sns "sns:*" "sns:CreateTopic"
"sns:ListSubscriptions"
"sns:ListSubscriptionsByTopic"
"sns:ListTopics"
"sns:Subscribe"

diff による両ポリシーの比較

まとめ

冒頭で述べた通り、本日(2023年11月8日)時点では、明確に期日が決定している廃止ではなく、将来的に廃止される予定とのことです。

おそらく、下記のドキュメントにあるような非推奨となる流れを踏むのではないかと考えられますが、AWS では CloudWatchFullAccessV2 を推奨していることには変わりありませんので、お早めの切り替えをお勧めいたします。

docs.aws.amazon.com

A deprecated policy has the following characteristics:

  • It continues to work for all currently attached users, groups, and roles. Nothing breaks.
  • It cannot be attached to any new users, groups, or roles. If you detach it from a current entity, you cannot reattach it.
  • After you detach it from all current entities, it is no longer visible and can no longer be used in any way.

(当方による和訳)

非推奨のポリシーには次の特徴があります。

  • 現在アタッチされているすべてのユーザー、グループ、およびロールに対して引き続き機能します。 破壊的変更ではありません。
  • 新しいユーザー、グループ、またはロールにアタッチすることはできません。 現在のエンティティからデタッチすると、再アタッチすることはできません。
  • 現在のすべてのエンティティからデタッチすると、表示されなくなり、いかなる方法でも使用できなくなります。

本エントリがお客様のお役に立てば幸いです。

ではまた。

市野 和明 (記事一覧)

マネージドサービス部・テクニカルサポート課

お客様から寄せられたご質問や技術検証を通じて得られた気づきを投稿していきます。

情シスだった前職までの経験で、UI がコロコロ変わる AWS においては GUI で手順を残していると画面構成が変わってしまって後々まごつくことが多かった経験から、極力変わりにくい AWS CLI での記事が多めです。

X(Twitter):@kazzpapa3(AWS Community Builder)