AWS Control Towerでdeclarative policies(宣言型ポリシー)の適用をやってみた #AWSreInvent

AWS Control Towerでdeclarative policies(宣言型ポリシー)の適用をやってみた #AWSreInvent

Clock Icon2024.12.03

re:Invent2024に参加している。たかやまです。

こちらのブログでも紹介されている通りControl Towerでもdeclarative policies(宣言型ポリシー)が利用できるようになりました。

https://dev.classmethod.jp/articles/aws-control-tower-managed-controls-declarative-policies/

上記ブログ執筆段階ではこちらの機能をためすことまではできなかったのですが、現在こちらの機能を試すことができるようになりましたので、その内容を共有いたします。

宣言型ポリシーまわりの発表情報はこちらのブログを参考にしていただければと思います。

Control Towerにおける宣言型ポリシー

Control Towerで現在サポートされている宣言型ポリシーはこちらです。

  • [CT.EC2.PV.7] Amazon EBSスナップショットのパブリック共有をすべて禁止する
  • [CT.EC2.PV.8] インターネットゲートウェイ (IGW) または出力専用インターネットゲートウェイ (EIGW) を介した VPC へのインバウンドおよびアウトバウンドのインターネット接続を禁止する
  • [CT.EC2.PV.9] すべてのEC2インスタンスのEC2シリアルコンソールへのアクセスを禁止する
  • [CT.EC2.PV.11] Amazon マシンイメージ (AMI) の公開共有を禁止する

Controls implemented with declarative policies - AWS Control Tower

Organizationsのdeclarative policiesと比べると、現時点では Instance Metadata DefaultsAllowed Images Settingsのポリシーがサポートされていないようですね
上記4つに比べて設定項目を投入する要素[1]があるので、一旦は公開の有効/無効化設定レベルの簡単なポリシーがサポートされている雰囲気を感じます。

Declarative policies - AWS Organizations

やってみた

実際にやってみたいと思います。

「すべてのコントロール」 > フィルター 実装 = Declarative policy for EC2 で検索すると現時点でサポートされている宣言型ポリシーコントロールの一覧を確認することができます。

ここでは[CT.EC2.PV.9] すべての EC2 インスタンスのために、EC2 シリアルコンソールへのアクセスを禁止するを試してみます。

CleanShot 2024-12-03 at 03.20.42@2x.png

設定は非常にシンプルで 「有効にする」から適用する「組織単位」を指定するだけです。

CleanShot 2024-12-03 at 03.27.25@2x.png
CleanShot 2024-12-03 at 03.28.31@2x.png

コントロール適用後、Organizationsから宣言型ポリシーを確認すると、AWSControlTower-Controls-のプレフィックスがついたポリシーが作成されていることが確認できます。

CleanShot 2024-12-03 at 03.32.36@2x.png

ポリシーの内容は以下の通りで、カスタムエラーメッセージとしてControl Towerで管理されている旨を表示するexception_messageがすでに設定されていることが確認できます。

{
  "ec2_attributes": {
    "serial_console_access": {
      "status": {
        "@@assign": "disabled",
        "@@operators_allowed_for_child_policies": [
          "@@all"
        ]
      }
    },
    "exception_message": {
      "@@assign": "This action is blocked by a declarative policy that is managed by AWS Control Tower. For details, contact the administrator for your organization."
    },
    "image_block_public_access": {
      "state": {
        "@@assign": "block_new_sharing",
        "@@operators_allowed_for_child_policies": [
          "@@all"
        ]
      }
    }
  }
}

最後に

改めてControl Towerで宣言型ポリシーが利用できるようになったことを確認しました。

最初利用できないと聞いた時は「東京リージョン対象外か?」などと思いつつ、バージニア北部のControl Towerを用意していましたが、無事に東京リージョンで動作を確認することができてよかったです!

Control Towerでも宣言型ポリシーが利用できるのは素直に嬉しいですね。

この記事が誰かのお役に立てれば幸いです。

以上、たかやま(@nyan_kotaroo)でした。

脚注
  1. インスタンスメタデータサービスの優先度だったりAMIプロバイダーの指定だったり ↩︎

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.