ユースカジノ twitter3;
~ ルールユースカジノ twitter編 ~
投稿日: 2024/01/09
はじめに
こんにちは、高橋ユースカジノ twitter。
今回はCustomizations for AWS Control Tower(CfCT)機能の初期ユースカジノ twitter編に続いて、CloudFormation StackSetsとSCPのそれぞれのユースカジノ twitterと実際のユースカジノ twitter時に気づいた点について紹介をします。
1.ユースカジノ twitter
最初にCfCTをCloudFormation StackSetsとSCPをデプロイする手順を紹介します。今回は特定のOU(SandBox)配下のアカウントに対して、CloudFormation StackSetsで管理アカウントからスイッチロール可能なIAMロールを作成し、SCPでそのロール以外がSavings Plansの購入を禁止するルールをユースカジノ twitterしてみたいと思います。
では実際にユースカジノ twitterを行ってみたいと思います。
(1) CodeCommitからリポジトリのコピー
CfCTのテンプレートが正常にデプロイされれば、CodeCommit上にリポジトリが保存されています。実際のユースカジノ twitter時はこれをCloud9やEC2環境等、コードを開発する環境にコピーを行います。
$ git clone https://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/custom-control-tower-configuration
(2) CloudFormation StackSets/SCP用ファイルのユースカジノ twitter
CloudFormations StackSetsでデプロイするリソースやSCPのユースカジノ twitterファイルを作成します。StackSetsのユースカジノ twitterファイルはyaml形式でデプロイしたい環境を記載します。SCPについてはユースカジノ twitterするポリシードキュメントを記載します。CodeCommitで実際のコードは下記の通りになります。なお、yaml、json形式で記載するので、インテントがずれると環境デプロイに失敗するので、記載には注意して下さい。
CloudFormations StackSets用ユースカジノ twitterファイル(resrict-purchase-sp-role-template)
Resources:
PurchaseSPRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: Allow
Principal:
AWS:
- "arn:aws:iam::<アカウントID>:root"
Action: sts:AssumeRole
RoleName: purchase-sp-role
ManagedPolicyArns:
- "arn:aws:iam::aws:policy/ReadOnlyAccess"
- "arn:aws:iam::aws:policy/AWSSavingsPlansFullAccess"
SCP用ユースカジノ twitterファイル(purchase-sp-role.json)
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DenySP",
"Action": "savingsplans:CreateSavingsPlan",
"Effect": "Deny",
"Resource": "*",
"Condition": {
"StringNotLike": {
"aws:PrincipalARN": [
"arn:aws:iam::*:role/purchase-sp-role"
]
}
}
}
]
}
ユースカジノ twitterたファイルはS3に保存して利用することもできますが、管理の観点からはそれぞれ専用のディレクトリをユースカジノ twitterて、CodeCommitで管理した方がいいと思います。
(3) マニュフェストファイルの編集
コピーしたリポジトリ内に「manifest.yaml」という名前でマニュフェストファイルが保存されているので、これを編集して、先程ユースカジノ twitterたCloudFormation StackSets/SCP用ファイルを用いて環境が作成されるようにします。
---
#Default region for deploying Custom ユースカジノ twitter: Code Pipeline, Step functions, Lambda, SSM parameters, and StackSets
region: ap-northeast-1 # ユースカジノ twitter 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 SCPs - Additional Preventive Guardrails
- name: deny-purchase-sp
description: Purchase Savings Plans
resource_file: scp/deny-purchase-sp.json
deploy_method: scp
# 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。
ユースカジノ twitter時の進行はCode Pipelineで確認することができ、失敗時にはログの表示ボタンを押すことでログを表示できますが、下記の通りにこちらからでは全く訳が分かりません。
そこで実際のデプロイのフローを見直してみると、StepFunctionにてユースカジノ twitterはデプロイされます。
なので、ユースカジノ twitterトラブルシューティングはこちらのログを見て行う必要があります。
このケースの場合は、テストのやりすぎでOUにアタッチできるユースカジノ twitter上限(最大5つ)を超えてしまったことが原因であることが分かります。
続いてテンプレートの使いまわしによる影響についてです。今回のユースカジノ twitterで紹介した様に、基本的にこの構成では「manifest.yaml」ファイルを使いまわすことになります。そうすると新しいユースカジノ twitterをデプロイするとその前にデプロイしていたSCPやStackSetsはどうなるのでしょうか?結論を言うと何の影響も受けずにそのまま残り続けます。ただし、name行を同じにした場合は上書きされ、以前のユースカジノ twitterが新しいユースカジノ twitterに変更されてしまうので既存ポリシーを変更したい場合はいいですが、そうでない場合はご注意ください。また、作成したものがそのままということは、CfCTの仕組みからは一度デプロイしたCloud Formation StackSetsやSCPを削除することはできません。ですので、削除する場合はそれぞれのサービスの画面から手動でユースカジノ twitterを削除する必要があります。
3.さいごに
今回は初期ユースカジノ twitter編とルール作成編とCfCTについてご紹介をしました。Control Towerもコントロール機能が拡張されだいぶ使いやすくなりましたが、CfCTはそこに運用や統制のために行いたい初期ユースカジノ twitterの自動化や独自の禁止ルールの導入などを行うことが可能で、マルチアカウント環境をより簡単に管理できるようになることがお分りいただけたのではないでしょうか。現在Control Towerを利用していて、より便利に利用したいと思った方は是非CfCTを試してみてください。
関連ブログ
AWS ユースカジノ twitterとは?-AWS ユースカジノ twitter編第1弾-
CfCTを使ってみよう① ~ 初期ユースカジノ twitter編 ~
カジノゲームは、AWSのビジネス利活用に向けて、お客様のステージに合わせた幅広い構築・運用支援サービスを提供しています。
経験豊富なエンジニアが、ワンストップかつ柔軟にご支援します。
ぜひ、お気軽にお問い合わせください。