re:Invent 2024 が始まり、新たな発表がたくさん出てきました。
今回は、Amazon Web Services が declarative policies (宣言型)ポリシーが発表されたので、早速検証してみました。
アップデート概要
新機能や新しい API が追加されても、サービスを制限しているため漏れが発生しずらくなります。
宣言型ポリシーを有効にする
AWS Organizationsで「ポリシー」→「EC2の宣言型ポリシー」を押下します。
EC2の宣言型ポリシーを有効化します。
アカウントステータスレポートを生成する
ポリシーをアタッチする前に環境を評価することができます。
ステータスレポート保存用のS3バケットを作成し、以下のバケットポリシーを設定します。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DeclarativePoliciesReportBucket", "Effect": "Allow", "Principal": { "Service": [ "report.declarative-policies-ec2.amazonaws.com" ] }, "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::<bucketName>/*", "Condition": { "StringEquals": { "aws:SourceArn": "arn:<partition>:declarative-policies-ec2:<region>:<accountId>:*" } } } ] }
「アクション」から「アカウントステータスレポートを表示」を選択します。
ステータスレポートの範囲を選択肢して送信します。
アカウントステータスレポートが生成されました。
一貫性のないアカウントを確認し、ポリシー作成の参考にできます。
宣言型ポリシーを適用する
宣言型ポリシーを作成していきます。
サポートされているのは以下のポリシーです。
今回は、「AMIブロックパブリックアクセス」を適用してみます。
ポリシーをアタッチする前に、AMIを公開できるか確認しておきます。
任意のAMI許可を編集し、AMIを公開できることを確認します。
もし公開できない場合、EC2サービス側の設定でブロックされているかもしれないので、以下のように「新しい公開共有をブロック」のチェックを外してみましょう。
それでは、ポリシーをアタッチします。
「アクション」から「ポリシーのアタッチ」を選択します。
ポリシーをアタッチするOUを選択肢ます。
ポリシーの中身は以下になります。
{ "ec2_attributes": { "image_block_public_access": { "state": { "@@assign": "block_new_sharing" } } } }
再度、AMIの公開を試みます。
宣言型ポリシーによりブロックされているため、公開できないことが確認できます。
まとめ
簡単に組織全体のサービス利用をブロックすることができました。
宣言型ポリシーも活用し、セキュリティとガバナンスの向上を目指しましょう。