はじめに
このブログでは、AWS Control Towerのアクションである「SetupLandingZone」についてまとめました。
(2023/02時点の情報)
きっかけは、特定ユーザーからのランディングゾーンの「バージョンアップ」「修復」を禁止するためSetupLandingZoneをDenyしようと考えましたが、この場合に他にもどのような操作に影響があるか確認したかったためです。
AWS Control Tower とは
AWS Control Towerは、AWSアカウントを管理するためのサービスであり、複数のAWSアカウントを統合的に管理することができます。また、AWS Control Towerには、AWSアカウントのセットアップに必要な基盤を提供するLanding Zoneという概念があります。
Landing Zone とは
Landing Zoneは、AWSで安全に複数のアカウントを使ってシステムを運用するための仕組みです。
AWS Control Tower のアクションである「SetupLandingZone」について
仕様
公式ドキュメントには「AWS Control Tower ランディングゾーンを設定または更新するアクセス許可を付与」と記載されています。
Control Tower紹介ページの図中では赤枠の部分が当てはまりそうです。
この「ランディングゾーンを設定または更新する」の具体的に、どの操作が該当するかAWSサポートに問い合わせました。回答によると、「SetupLandingZone」アクションに該当する操作は以下①〜④の通りです。
①ランディングゾーンの新規作成
ランディングゾーンと呼ばれる、アカウントに関連付けられたリソースが起動されます。これにより、AWS Control Towerで複数のアカウントを一元管理することができます。
② ランディングゾーンのバージョン更新
既存のランディングゾーンを更新できます。AWS Control Towerでは、最新の機能や最新のベストプラクティスを利用するために、定期的にバージョン更新を行うことが推奨されています。
③ ランディングゾーンの修復
ランディングゾーン内のAWSリソースやサービスの問題を自動的に解決する機能を提供しています。
④ ランディングゾーン設定の変更
既存のランディングゾーンの設定を変更することができます。
2023年2月時点では、以下のランディングゾーンに関するオプション設定の変更が可能です。
- リージョン拒否設定:有効・無効の切り替え
- ガバナンスのための追加リージョン:ホームリージョンに加えて、管理するリージョンを選択
- CloudTrailの設定:有効・無効の切り替え
- S3のログ保持期間の設定:標準ログ用は1年、アクセスログ用は10年のデフォルト値
- KMS暗号化:有効・無効の切り替え
留意点
注意すべき点として、Control Tower コンソールを含む各サービスのコンソールは日々アップデートが行われており、今後のアップデートによっては、例えば何らかのボタンが追加された際に、そのボタンを押下した先の操作で当該権限が必要になる可能性もあります。
リソースタイプ、条件キーについて
リソースタイプ、条件キーは、公式ドキュメントに記載されている表で空欄になっているので指定ができません。
SetupLandingZoneに含まれない操作(ガードレールの有効・無効化)
「SetupLandingZone」アクションとは別に、ガードレールの有効・無効を制御するためのアクションが存在し、ポリシーで「SetupLandingZone」アクションを拒否していても、ガードレールの操作は可能です。
挙動確認
「SetupLandingZone」アクションをDenyした場合、Control Towerコンソールのランディングゾーン設定から行うランディングゾーンの「新規作成」「修復」「更新」および「設定を変更する」という操作が全て権限不足によるエラーになることが確認されました。各ガードレールの有効・無効化は実施可能です。
以下は、「SetupLandingZone」アクションをDenyしてその他は許可するポリシーの例です。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DenySetupLandingZone",
"Effect": "Deny",
"Action": "controltower:SetupLandingZone",
"Resource": "*"
},
{
"Sid": "AllowAllOtherActions",
"Effect": "Allow",
"Action": "*",
"Resource": "*"
}
]
}
まとめ
AWS Control TowerとLandingZoneについての基本的な説明と、アクション「SetupLandingZone」に含まれる具体的な操作について紹介しました。
ランディングゾーンに関して何らかの変更を加える際に当該権限が必要になるものと理解して、その観点でアクセス制御することを検討することが重要です。