Declarative Policies
Declarative Policies とは
Declarative Policies は AWS Organizations のポリシータイプの一つで、AWS サービスの基本設定を組織全体に宣言的に強制する機能である。
SCP / RCP との違い
| SCP | RCP | Declarative Policies | |
|---|---|---|---|
| 制御対象 | プリンシパル(IAM ユーザー / ロール) | リソース | サービスの設定そのもの |
| 制御方法 | API コールを拒否 | API コールを拒否 | サービスのコントロールプレーンで直接強制 |
| 新機能 / 新 API への追従 | ポリシーの更新が必要 | ポリシーの更新が必要 | 自動的に追従 |
| サービスリンクロールの制御 | 不可 | 不可 | 可能 |
| エラーメッセージ | カスタマイズ不可 | カスタマイズ不可 | カスタマイズ可能 |
| デタッチ時の挙動 | 即座に制限解除 | 即座に制限解除 | 元のアカウントレベル設定に復元 |
SCP / RCP は「この API コールを許可しない」というアプローチであるのに対し、Declarative Policies は「この設定を常にこの値にする」というアプローチである。そのため、サービスに新しい API が追加されても、Declarative Policies はポリシーの更新なしに設定を維持できる。
Control Tower 予防コントロールとの関係
Control Tower の予防コントロールの一部は、実体として Declarative Policies を使用している。
| Control Tower 予防コントロール | Declarative Policies 属性 |
|---|---|
| CT.EC2.PV.7 | EBS Snapshot Block Public Access |
| CT.EC2.PV.8 | VPC Block Public Access |
| CT.EC2.PV.9 | Serial Console Access |
| CT.EC2.PV.11 | Image Block Public Access |
Control Tower 経由で有効化した場合と Organizations で直接ポリシーを作成した場合の挙動の差分は、今後の検証で確認する。
ポリシータイプ
Declarative Policies は 2 つのポリシータイプに分かれている。
| ポリシータイプ | フィルター名 | 対象サービス |
|---|---|---|
| Declarative policies for EC2 | DECLARATIVE_POLICY_EC2 | Amazon VPC, Amazon EC2, Amazon EBS |
| Amazon S3 policies | S3_POLICY | Amazon S3 |
S3 Policy は 2025 年 11 月に追加された比較的新しい機能であり、EC2 系とは独立したポリシータイプとして管理される。
サポートされている属性
EC2 系(DECLARATIVE_POLICY_EC2)
| # | 属性 | 効果 | 関連 Security Hub コントロール | 関連 CT 予防コントロール |
|---|---|---|---|---|
| 1 | VPC Block Public Access | VPC / サブネットの IGW 経由のインターネットアクセスをブロック | EC2.9, EC2.25, Autoscaling.5 等 | — |
| 2 | EBS Snapshot Block Public Access | EBS スナップショットの公開をブロック | EC2.1, EC2.182 | CT.EC2.PV.7 |
| 3 | Image Block Public Access | AMI の公開をブロック | — | CT.EC2.PV.11 |
| 4 | Instance Metadata Defaults | 新規 EC2 インスタンスの IMDS デフォルトを設定(IMDSv2 強制等) | EC2.8 | — |
| 5 | Serial Console Access | EC2 シリアルコンソールのアクセス制御 | — | — |
| 6 | Allowed Images Settings | 使用可能な AMI を制限 | — | — |
VPC Block Public Access
VPC / サブネットの IGW 経由のインターネットアクセスを制御する。
モード:
off— VPC BPA 無効block_ingress— インバウンドのインターネットトラフィックをブロック(NAT Gateway / Egress-only IGW 経由のアウトバウンドは許可)block_bidirectional— IGW / Egress-only IGW 経由の全トラフィックをブロック
Exclusions(除外):
- VPC 単位またはサブネット単位で除外を設定可能
- ポリシーで
exclusions_allowedをenabled/disabledに設定 - 除外の作成はアカウント側で行う(ポリシー内では除外の作成はできない)
EBS Snapshot Block Public Access
EBS スナップショットの公開を制御する。
モード:
block_all_sharing— 全てのパブリック共有をブロック(既存のパブリック共有もアクセス不可になる)block_new_sharing— 新規のパブリック共有をブロック(既存のパブリック共有は維持)unblocked— 制限なし
Image Block Public Access
AMI のパブリック共有を制御する。
モード:
block_new_sharing— 新規のパブリック共有をブロック(既存のパブリック共有は維持)unblocked— 制限なし
Instance Metadata Defaults
新規 EC2 インスタンスの IMDS デフォルトを設定する。
主な設定:
http_tokens—required(IMDSv2 強制)/optional(IMDSv1 も許可)/no_preferencehttp_put_response_hop_limit— メタデータトークンの最大ホップ数(-1〜64)http_endpoint— IMDS エンドポイントの有効 / 無効instance_metadata_tags— インスタンスタグへのメタデータアクセスの有効 / 無効http_tokens_enforced—enabledにすると IMDSv1 インスタンスの起動自体が失敗する
Serial Console Access
EC2 シリアルコンソールのアクセスを制御する。
enabled— シリアルコンソールアクセスを許可disabled— シリアルコンソールアクセスをブロック
Allowed Images Settings
EC2 で使用可能な AMI を制限する。
state—enabled/disabled/audit_modeimage_criteria— 許可する AMI の条件(プロバイダー、名前、Marketplace プロダクトコード、作成日、非推奨日)
S3 系(S3_POLICY)
| # | 属性 | 効果 | 関連 Security Hub コントロール |
|---|---|---|---|
| 1 | Block Public Access | S3 BPA の 4 設定を組織レベルで一括強制 | S3.2, S3.3, S3.8, S3.19 |
S3 Block Public Access
S3 の Block Public Access 4 設定を組織レベルで一括制御する。
設定値:
all— 4 設定すべてを有効化(BlockPublicAcls, BlockPublicPolicy, IgnorePublicAcls, RestrictPublicBuckets)none— 組織レベルの制御を無効化(アカウント側で個別管理)
EC2 系の Declarative Policies とは異なり、個別の設定を選択することはできず、全有効化(all)か無効化(none)の二択である。
検証ステータス
| 属性 | ステータス | 備考 |
|---|---|---|
| VPC Block Public Access | 検証予定 | 近日中に検証予定 |
| EBS Snapshot Block Public Access | CT.EC2.PV.7 で検証済み | Organizations 直接との差分は未確認 |
| Image Block Public Access | CT.EC2.PV.11 で検証済み | Organizations 直接との差分は未確認 |
| Instance Metadata Defaults | 未検証 | |
| Serial Console Access | 未検証 | |
| Allowed Images Settings | 未検証 | |
| S3 Block Public Access | 未検証 |