CloudWatchFullAccessV2への移行が推奨されるアナウンスがあり、いくつか質問を受ける機会があったので簡単にまとめます。
もう既にたくさん記事は出ていますが、自分用でまとめたので誰かに役立ててもらえたら嬉しいです。
■AWSより届いたアナウンス
こんな件名で届いていました。
[Action Required] Changes to AWS Managed Policy [AWS Account: xxxxxxxxxxxx]
要点は以下です。
1. あなたのアカウントで「CloudWatchFullAccess」が利用されているので通知しますよ。
2. “CloudWatchFullAccess” 管理ポリシーを “CloudWatchFullAccessV2” に置き換えることを推奨します。
3. AWS Health Dashboardの ‘Affected Resources’ タブで影響を受けるリソースのリストを確認できます。
4. 今後はCloudWatchFullAccessはアタッチできなくなりますよ。
5. 新しいポリシーには、Autoscaling:Describeの権限、SNSの権限、IAMの権限、oam:ListSinksおよびoam:ListAttachedLinksの権限が含まれています。
■V2との違い
・Action の部分が変わった
オートスケーリングとSNSに関するアクションは以下のように「*」でまとめられていました。
1"autoscaling:Describe*“2"sns:*"V2では以下のように詳細化されています。
[autoscaling]
1"application-autoscaling:DescribeScalingPolicies”, 2“autoscaling:DescribeAutoScalingGroups”, 3"autoscaling:DescribePolicies"[sns]
1"sns:CreateTopic", 2“sns:ListSubscriptions”, 3“sns:ListSubscriptionsByTopic”, 4“sns:ListTopics”, "sns:Subscribe"とは言ってもよく分からんという事であれば、
この権限の詳細を見てもらえれば理解が早まるかもしれません!
■今回変更になった権限の詳細
・Auto Scaling
1application-autoscaling:DescribeScalingPolicies:2Application Auto Scalingポリシーの詳細を取得します。34autoscaling:DescribeAutoScalingGroups:5Auto Scalingグループの詳細を取得します。67autoscaling:DescribePolicies:8Auto Scalingポリシーの詳細を取得します。
上記の権限では、Auto Scalingの設定やポリシーの詳細を確認することができます。
ただし、Auto Scalingの設定を変更したり、新しいAuto Scalingグループを作成したりすることはできません。
・SNS (Simple Notification Service)
1sns:CreateTopic:2新しいSNSトピックを作成します。34sns:ListSubscriptions:5現在のアカウントのすべてのサブスクリプションを一覧表示します。67sns:ListSubscriptionsByTopic:8特定のトピックのすべてのサブスクリプションを一覧表示します。910sns:ListTopics:11現在のアカウントのすべてのトピックを一覧表示します。1213sns:Subscribe:14特定のトピックにエンドポイントをサブスクライブします。
これらの権限により、SNSトピックの作成、サブスクリプションの一覧表示と作成が可能です。
ただし、メッセージの公開やトピックの削除など、他のSNS操作を行うことはできません。
■まとめると
余計に広く付けていた権限を絞ったものが「V2」ですよ。って事みたいですね。
■その他の変更点
・Statement ID (Sid) の部分
V2では各ステートメントにIDが付与されていますが、V1では存在しません。
具体的には、“CloudWatchFullAccessPermissions”, “EventsServicePermissions”, “OAMReadPermissions”というIDが追加されています。
・他の部分はV1とV2で同じです。
これらの変更は、ポリシーの精度と管理を向上させるために行われたと考えられます。
具体的には、”autoscaling:Describe*”のようなワイルドカードを使用すると、予期しないリソースへのアクセスを許可してしまう可能性があります。
そのため、必要なアクションを明示的に指定することで、セキュリティを強化しています。
また、Statement IDを追加することで、各ステートメントの目的を明確にし、管理を容易にしています。
以上です!