CT.MULTISERVICE.PV.1 適用環境で除外プリンシパルを設定し、制限リージョンでのリソース作成を試してみた
はじめに
かつまたです。
今回は、Control Tower環境に対してOU単位でのリージョン拒否を設定できるコントロール:CT.MULTISERVICE.PV.1を適用した上で、許可していないリージョンでのリソース操作を可能にする除外プリンシパルを指定し、リソースが実際に作成可能かどうかを検証してみましたのでご紹介します。
CT.MULTISERVICE.PV.1 コントロールとは
CT.MULTISERVICE.PV.1コントロールはOU単位でのリージョン拒否設定を適用可能なコントロールです。ランディングゾーン設定でのリージョン拒否設定を実施している場合、前提としてそちらが優先されますが、OUごとにさらにリージョンを制限したい場合や、ランディングゾーン設定でのリージョン拒否設定を利用せずにOUごとにリージョン制限を細かく指定したい場合などの要件の場合、活用できるコントロールとなっています。
設定時のパラメータとして以下を持ちます。
- AllowedRegions : OUの動作を許可するリージョンを指定
- ExemptedPrincipalARNs : この制御から除外されるIAMプリンシパルを指定して、特定のAWSサービスを操作できるようにする
- ExemptedActions : このコントロールから除外されるアクションを指定して、そのアクションを許可する。
本ブログでは、ExemptedPrincipalARNsパラメータを活用してリージョン制限から除外するIAMロールを指定することで、制限リージョン外でのリソース操作を試しています。
やってみる
前提
前提として、CT.MULTISERVICE.PV.1コントロールを適用するOU内のメンバーアカウントに以下のIAMロールを作成しています。
- IAMロール1(除外するロール) : AmazonS3FullAccessポリシー付与
- IAMロール2(除外しないロール、アクセス拒否を想定) : AmazonS3FullAccessポリシー付与
また、Control Tower環境および、コントロールを適用するOU・メンバーアカウントは作成済みとなります。
コントロール有効
- OUに対してコントロールを有効化していきます。「Control Catalog」からCT.MULTISERVISE.PV.1を検索し、「コントロールアクション」→「有効化にする」を実行します。

-
適用したいOUと許可したいリージョンを選択します。本ブログでは東京リージョン(ap-northeast-1)、バージニア北部リージョン(us-east-1)を指定しました。


-
「除外されるプリンシパル」の「IAM プリンシパル ARN」に除外用ロールであるIAMロール1を指定して追加します。今回はAssumedRoleにワイルドカードを利用してロール配下で引き受けることができるすべてのセッション名を適用しています。コントロールを適用します。

動作確認
前提条件で記載したIAMロール2つを用いて、大阪リージョンでのS3バケット作成を試みます。
-
ExemptedPrincipalARNsパラメータに指定したIAMロール1にメンバーアカウントからAssumeRoleします。制限しているはずの大阪リージョンでS3の作成と削除を試みてみるとどちらも問題なく実行できました。


-
指定していないIAMロール2にAssumeRoleしてS3バケット作成を試みてみます。操作は失敗し、エラーよりSCP起因で拒否されていることが確認できます。

おわりに
ご覧いただきありがとうございました。
本ブログ内容が活用できるケースとしては、OUごとにリージョン制限を細かく指定したいが、要件により一部プリンシパルに対してだけのみ制限リージョン外伝おリソース操作を許可したい、などが考えられると思います。
どなたかの参考になれば幸いです。
参考資料
アノテーション株式会社について
アノテーション株式会社はクラスメソッドグループのオペレーション専門特化企業です。サポート・運用・開発保守・情シス・バックオフィスの専門チームが、最新 IT テクノロジー、高い技術力、蓄積されたノウハウをフル活用し、お客様の課題解決を行っています。当社は様々な職種でメンバーを募集しています。「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、アノテーション株式会社 採用サイトをぜひご覧ください。







