Account Factory CustomizationでAWSアカウントを作成後のリソース作成を自動化してみた
はじめに
Control Tower
のAccount Factory
を使用すれば、新しいAWSアカウントを自動で作成できます。
ただ、この作成するアカウントはControl Tower
で設定される標準的な設定しか付与されません。
新規作成のアカウントに同じリソースをデプロイしておきたい場合や共通の設定をしておきたい場合は、Account Factory Customization(AFC)
を使用することで、アカウント作成直後のカスタム設定を自動化することができます。
今回は以下に書かれている方法でAFC
を使用してみたいと思います。
前提条件
-
Control Tower
を有効化し、Account Factory
が使用できる状態にしておいてください。
こちらの記事に詳しい手順が書かれていますので、参考にしてください。
https://blog.serverworks.co.jp/2024/11/18/125830
実装
ハブアカウントを作成/ロール作成
ブループリントを一元的に管理する、同じ組織内にあるハブアカウントを用意します。お客様は AFC を使用する前に、ハブアカウントに AWSControlTowerBlueprintAccess ロールを作成する必要があります。
まず、ハブアカウントを作成し、このアカウントでAWSControlTowerBlueprintAccess
という名前のロールを作成します。
直接ハブアカウントにログインするとSCPでIAMロールが作成できないので、管理アカウントからSwitch Role
でハブアカウントに入りましょう。
ロール名:AWSControlTowerBlueprintAccess
許可ポリシー:AWSServiceCatalogAdminFullAccess
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::管理アカウントID:role/service-role/AWSControlTowerAdmin"
},
"Action": "sts:AssumeRole"
}
]
}
ハブアカウントへService Catalog の管理者を委任
ハブアカウントへService Catalog の管理者を委任する作業をしていきます。
この設定をすることで、Service Catalogの製品をハブアカウントで一元管理することができます。
管理アカウントでCloudShellを開き、下記を実行します。
aws organizations enable-aws-service-access --service-principal servicecatalog.amazonaws.com
aws organizations register-delegated-administrator --account-id ハブアカウントID --service-principal servicecatalog.amazonaws.com
ハブアカウントで製品登録
今回は新規アカウントを作成後自動でS3バケットをデプロイされる製品を作成します。
AWSTemplateFormatVersion: '2010-09-09'
Description: "Minimal test blueprint"
Resources:
TestBucket:
Type: AWS::S3::Bucket
Properties:
BucketName: "afc-test-temp2025-bucket"
アカウントに製品を紐づける
ここまでできたら、Account Factoryで管理しているアカウントに製品を紐づけます。
新規アカウントでも既存アカウントでも可能です。
新規作成 or 更新をした後、該当のアカウントに入りS3を確認してみます。
問題なく、Service Catalogが起動していますね!
おわりに
Account Factory Customization (AFC)
を使用することにより、アカウント作成後の手動設定や個別デプロイの手間を削減できます。
AFCを使用したブログはあまり多くない印象ですので、今後も気づきがあれば更新していこうと思います。
Discussion