ユースカジノ twitterを使ってみよう②
~ ユースカジノ twitter ~
投稿日: 2024/01/09
はじめに
こんにちは、高橋です。
今回はCustomizations for AWS Control Tower(ユースカジノ twitter)機能の初期設定編に続いて、CloudFormation StackSetsとSCPのそれぞれの設定と実際の設定時に気づいた点について紹介をします。
1.ユースカジノ twitter
最初にCfCTをCloudFormation StackSetsとSCPをデプロイする手順を紹介します。今回は特定のOU(SandBox)配下のアカウントに対して、CloudFormation StackSetsで管理アカウントからスイッチロール可能なIAMロールをユースカジノ twitterし、SCPでそのロール以外がSavings Plansの購入を禁止するルールを設定してみたいと思います。
では実際にユースカジノ twitterを行ってみたいと思います。
(1) CodeCommitからリポジトリのコピー
ユースカジノ twitterのテンプレートが正常にデプロイされれば、CodeCommit上にリポジトリが保存されています。実際の設定時はこれをCloud9やEC2環境等、コードを開発する環境にコピーを行います。

$ git clone https://git-codecommit.ap-northeast-1.amazonユースカジノ twitter.com/v1/repos/custom-control-tower-configuration
(2) CloudFormation StackSets/SCP用ファイルのユースカジノ twitter
CloudFormations StackSetsでデプロイするリソースやSCPの設定ファイルをユースカジノ twitterします。StackSetsの設定ファイルはyaml形式でデプロイしたい環境を記載します。SCPについては設定するポリシードキュメントを記載します。CodeCommitで実際のコードは下記の通りになります。なお、yaml、json形式で記載するので、インテントがずれると環境デプロイに失敗するので、記載には注意して下さい。
CloudFormations StackSets用ユースカジノ twitterファイル(resrict-purchase-sp-role-template)
Resources:
PurchaseSPRole:
Type: ユースカジノ twitter::IAM::Role
Properties:
AssumeRolePolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: Allow
Principal:
ユースカジノ twitter:
- "arn:ユースカジノ twitter:iam::<アカウントID>:root"
Action: sts:AssumeRole
RoleName: purchase-sp-role
ManagedPolicyArns:
- "arn:ユースカジノ twitter:iam::ユースカジノ twitter:policy/ReadOnlyAccess"
- "arn:ユースカジノ twitter:iam::ユースカジノ twitter:policy/ユースカジノ twitterSavingsPlansFullAccess"
SCP用ユースカジノ twitterファイル(purchase-sp-role.json)
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DenySP",
"Action": "savingsplans:CreateSavingsPlan",
"Effect": "Deny",
"Resource": "*",
"Condition": {
"StringNotLike": {
"ユースカジノ twitter:PrincipalARN": [
"arn:ユースカジノ twitter:iam::*:role/purchase-sp-role"
]
}
}
}
]
}
ユースカジノ twitterしたファイルはS3に保存して利用することもできますが、管理の観点からはそれぞれ専用のディレクトリをユースカジノ twitterして、CodeCommitで管理した方がいいと思います。
(3) マニュフェストファイルの編集
コピーしたリポジトリ内に「manifest.yaml」という名前でマニュフェストファイルが保存されているので、これを編集して、先程ユースカジノ twitterしたCloudFormation StackSets/SCP用ファイルを用いて環境がユースカジノ twitterされるようにします。
---
#Default region for deploying Custom Control Tower: Code Pipeline, Step functions, Lambda, SSM parameters, and StackSets
region: ap-northeast-1 # Control Tower Home Region
version: 2021-03-15
resources:
# ControlTower Custom CFN Resources - Create Additional IAM Role
- name: create-purchase-sp-role ←①
resource_file: stacksets/restrict-purchase-sp-role-template ←②
deploy_method: stack_set ←③
#Apply to the following OU(s)
deployment_targets:
organizational_units:
- Sandbox ←④
# ControlTower Custom ユースカジノ twitters - Additional Preventive Guardrails
- name: deny-purchase-sp
description: Purchase Savings Plans
resource_file: ユースカジノ twitter/deny-purchase-sp.json
deploy_method: ユースカジノ twitter
# Apply to the following OU(s)
deployment_targets:
organizational_units:
- Sandbox # Formerly Custom
主にユースカジノ twitterする箇所は①~④で、以下の様に記載します。
- ① CloudFormation StackSetsの場合は、CloudFormationのテンプレート名に含む名前、SCPの場合はSCPのポリシー名にユースカジノ twitterする値を記載
- ② (2)で作製したユースカジノ twitterファイルのパスを記載する。S3に保存した場合はURLを記載。
- ③ CloudFormation StackSetsのユースカジノ twitterの場合は「stack_set」、SCPの場合は「scp」と記載。
- ④ このユースカジノ twitterを適用したいOUの名前を記載。複数のOUに適用する場合は、複数行に分けて記載する。全体に適用する場合は「Root」と指定。
(4) 環境のユースカジノ twitter
ユースカジノ twitterが完了したら、gitコマンドでCodeCommitに更新したリポジトリを保存することで自動的に環境のデプロイが実行されます。
git add -A
git commit -m 'コメント'
git push
ユースカジノ twitterの状況はCodePipelineの「Custom-Control-Tower-CodePipeline」で確認することができます。全てのステップが成功しましたとなっていれば、無事環境がユースカジノ twitterされたことになります。

実際にこんな感じでユースカジノ twitterが行われています。
SandBox OUに対するSCPのユースカジノ twitter

SandBox OU内のアカウントのロール

2.Tips
次に私が実際に試していた中で気付いた点についてユースカジノ twitterしたと思います。
1つ目は失敗時のトラブルシューティングです。
ユースカジノ twitter時の進行はCode Pipelineで確認することができ、失敗時にはログの表示ボタンを押すことでログを表示できますが、下記の通りにこちらからでは全く訳が分かりません。

そこで実際のデプロイのフローを見直してみると、StepFunctionにてユースカジノ twitterはデプロイされます。

なので、実際のトラブルシューティングはこちらのログを見て行う必要があります。

このケースの場合は、テストのやりすぎでOUにアタッチできるユースカジノ twitterの上限(最大5つ)を超えてしまったことが原因であることが分かります。
続いてテンプレートの使いまわしによる影響についてです。今回の設定で紹介した様に、基本的にこの構成では「manifest.yaml」ファイルを使いまわすことになります。そうすると新しい設定をデプロイするとその前にデプロイしていたSCPやStackSetsはどうなるのでしょうか?結論を言うと何の影響も受けずにそのまま残り続けます。ただし、name行を同じにした場合は上書きされ、以前の設定が新しい設定に変更されてしまうので既存ポリシーを変更したい場合はいいですが、そうでない場合はご注意ください。また、ユースカジノ twitterしたものがそのままということは、CfCTの仕組みからは一度デプロイしたCloud Formation StackSetsやSCPを削除することはできません。ですので、削除する場合はそれぞれのサービスの画面から手動で設定を削除する必要があります。
3.さいごに
今回は初期設定編とユースカジノ twitterとCfCTについてご紹介をしました。Control Towerもコントロール機能が拡張されだいぶ使いやすくなりましたが、CfCTはそこに運用や統制のために行いたい初期設定の自動化や独自の禁止ルールの導入などを行うことが可能で、マルチアカウント環境をより簡単に管理できるようになることがお分りいただけたのではないでしょうか。現在Control Towerを利用していて、より便利に利用したいと思った方は是非CfCTを試してみてください。
関連ブログ
ユースカジノ twitter Control Towerとは?-ユースカジノ twitter Control Tower編第1弾-
ユースカジノ twitterを使ってみよう① ~ 初期設定編 ~
ユースカジノ twitterは、AWSのビジネス利活用に向けて、お客様のステージに合わせた幅広い構築・運用支援サービスを提供しています。
経験豊富なエンジニアが、ワンストップかつ柔軟にご支援します。
ぜひ、お気軽にユースカジノ 登録ください。