AWS Control Tower用のIAMロールを作成してみた

2023.06.08

こんにちは!丸屋 正志(Maruya Masashi) です。

今日もブロックを掘ったり積み上げたり匠に壊されたりしていますか?

このブログで実施すること

AWS Control Towerを使用してメンバーアカウントを管理するためには、 AWSControlTowerExecution というロールを使用する必要があります。

新しいメンバーアカウントを作成する場合、AWS Control Towerは自動的に AWSControlTowerExecution を設定してくれます。しかし、既存のアカウントをAWS Control Towerの管理下に移動する場合は、事前に各アカウントに AWSControlTowerExecution を設定しておく必要があります。

毎回IAMロール画面で手動で作成するのは手間ですので、ここではCloudFormationを活用して設定していきたいと思います。

既に別ブログで、CloudFormationテンプレートを用意されているので、そちらを活用します。


やってみた

事前準備

以下のCloudFormationテンプレートを Iam-Role_AWSControlTowerExecution.yaml というファイルに格納しておきます。

AWSTemplateFormatVersion: 2010-09-09
Description: Configure the Execution Role for Control Tower
Parameters:
  ManagementAccountId:
    Description: "Control Tower management account ID"
    Type: String
Resources:
  AWSControlTowerExecutionRole:
    Type: AWS::IAM::Role
    Properties:
      RoleName: "AWSControlTowerExecution"
      AssumeRolePolicyDocument:
        Version: 2012-10-17
        Statement:
          - Effect: Allow
            Principal:
              AWS:
                - !Ref ManagementAccountId
            Action:
              - "sts:AssumeRole"
      Path: /
      ManagedPolicyArns:
        - arn:aws:iam::aws:policy/AdministratorAccess


Step 0 : ダッシュボード

下記のURLから、AWS CloudFormation のページにアクセスします。

(※ 【AWS コンソール】 → 【AWS CloudFormation】 → 【スタック】 という手順でも可能です。)


スタックページにて、右上の 【スタックの作成】 から 【新しいリソースを使用(標準)】 をクリックします。


Step 1 : スタックの作成

  • 『前提条件 - テンプレートの準備』 : 【テンプレートの準備完了】
  • 『テンプレートの指定』 : 【テンプレートファイルのアップロード】

【ファイルの選択】 から「Iam-Role_AWSControlTowerExecution.yaml」を選択し、【次へ】をクリックします。


Step 2 : スタックの詳細を指定

各項目に値を入力し、 【次へ】 をクリックします。

項目
スタックの名前 CFn-AWSControlTowerExecution
ManagementAccountId AWS Control Tower を有効化している管理のAWSアカウントID


Step 3 : スタックオプションの設定

デフォルト状態のまま、 【次へ】 をクリックします。


Step 4 : レビュー CFn-AWSControlTowerExecution

各種項目の値が合っていることを確認し、『The following resource(s) require capabilities: [AWS::IAM::Role](画面下辺の青枠)』にチェックを入れて、 【送信】 をクリックします。


Step 5 : スタック作成完了の確認

確認 : 1

CloudFormationのスタック画面にて、作成したスタックがCREATE_COMPLETE になっていることを確認します。

確認 : 2

IAMロール(AWSControlTowerExecution)画面にて、下記の内容になっているかを確認します。


Q&A

Q, AWSControlTowerExecution already exists この様なエラーが出ました。
A, 既に同じ名前でIAMロールが作成されていますので、まずは同名のIAMロール名を削除してください。


Q, AWSControlTowerExecutionというロールは、いつから必要になりますか?
A, Root直下から、組織単位(OU)配下に移動して、メンバーアカウントを登録する際に必要となります。


Q, AWSControlTowerExecution というロールは、具体的に何をするのですか?
A, 下記AWSドキュメントをご参照ください。