クラウド運用管理者は、vRealize Automation Cloud Guardrails を使用して、組織単位 (OU) およびメンバー アカウントを作成し、環境に展開することができます。既存の OU にメンバー アカウントを追加することもできます。

たとえば、AWS をブートストラップし、組織 (org) と 2 つの主要な組織単位 (OU) を作成できます。

  • コア OU には、セキュリティ、ログ アーカイブ、および共有サービスのメンバー アカウントを含めることができます。
  • ポリシー OU にベースライン アカウントを含めて、組織のポリシーを制御することができます。

この例では、OU とメンバー アカウントを作成して AWS 環境をブートストラップし、OU にポリシーを適用します。AWS をブートストラップするには、Cloud Guardrails テンプレート ライブラリで 1 つ以上のブートストラップ テンプレート SLS ファイルを選択し、必要に応じて更新して、Cloud Guardrails の目的の状態として実行します。例:

  • AWS 組織単位
  • AWS メンバー アカウント
  • AWS ランディング ゾーンの作成

Cloud Guardrails によって OU およびメンバー アカウントがプロビジョニングされたら、ワークロードとアプリケーションを展開できる仮想プライベート クラウド (VPC) などのランディング ゾーンを作成できます。Kubernetes クラスタを使用している場合、設定を速やかに行うために OU とメンバー アカウントを作成するテンプレートを使用することが特に重要になります。

Guardrails テンプレートを使用すると、OU とメンバー アカウントをすばやく作成して、環境に展開することができます。ネストされた OU とメンバー アカウントを使用して AWS をブートストラップする場合は、名前、タイプ、プロバイダ、説明、およびパラメータなどの特定のメタデータを含める必要があります。

例:

META:
  name: AWS landing zone
  type: GUARDRAILS_BUNDLE
  provider: AWS
  description: Create nested OUs and member accounts with SCP polices.
  parameters:
    - root_org_name : Root Organization name
        type: String

OU ブートストラップ テンプレート コードは次のようになります。

META:
  name: AWS Organizational Unit
  provider: AWS
  category: BOOTSTRAP
  description: An organizational unit (OU) is a group of AWS accounts within an organization. An OU can also contain other OUs enabling you to create a hierarchy.

{% set organization_unit_name = params.get('organization_unit_name') %}
{% set parent_org_id = params.get('parent_org_id') %}

{{organization_unit_name}}:
  META:
    name: Create organization unit
    parameters:
      organization_unit_name:
        uiElement: text
        name: Organization Unit
        description: An organizational unit (OU) is a group of AWS accounts within an organization. An OU can also contain other OUs enabling you to create a hierarchy.
      parent_org_id:
        uiElement: text
        name: Parent Org Id
        description: An organizational name is a group of AWS accounts or OUs within an organization.
  aws.organizations.organization_unit.present:
  - org_unit_name: {{organization_unit_name}}
  - parent_id: {{parent_org_id}}

メンバー アカウント ブートストラップ テンプレート コードは次のようになります。

META:
  name: AWS Member Account
  provider: AWS
  category: BOOTSTRAP
  description: An account in Organizations is a standard AWS account that contains your AWS resources and the identities that can access those resources.

{% set member_account_name = params.get('member_account_name') %}
{% set member_account_email = params.get('member_account_email') %}
{% set member_account_role = params.get('member_account_role', 'OrganizationAccountAccessRole') %}
{% set parent_org_id = params.get('parent_org_id') %}

{{member_account_name}}:
  META:
    name: Create AWS member account
    description: An account in Organizations is a standard AWS account that contains your AWS resources and the identities that can access those resources.
    parameters:
      member_account_name:
        uiElement: text
        name: Account Name
        description: Name of member account.
      member_account_role:
        uiElement: text
        name: Role Name
        description: Provide some role to member account.
      member_account_email:
        uiElement: text
        name: Email
        description: Email id for creating member account.
      parent_org_id:
        uiElement: text
        name: Parent Org Id
        description: Id of the Organization or Organization Unit under which the account will be created.

  aws.organizations.account.present:
  - account_name: {{member_account_name}}
  - role_name: {{member_account_role}}
  - email: {{member_account_email}}
  - iam_user_access_to_billing: ALLOW
  - parent_id: {{parent_org_id}}

次の例では、ネストされた OU とメンバー アカウントを使用して AWS をブートストラップし、OU とメンバー アカウントにポリシーを適用します。

前提条件

手順

  1. vRealize Automation Cloud インスタンスから Cloud Guardrails ポリシー テンプレート リポジトリにアクセスします。
    1. [Guardrails] タブで、[+新規] をクリックします。
    2. [ライブラリから] をクリックします。
    3. [ブートストラップ] カードをクリックします。
  2. 組織単位とメンバー アカウントを作成します。
    1. [AWS 組織単位] という名前のテンプレートを選択します。
    2. [AWS メンバー アカウント] という名前のテンプレートを選択します。
  3. ランディング ゾーンを作成する必要がある場合は、[AWS ランディング ゾーンの作成] という名前のテンプレートを選択します。
  4. [選択したテンプレートの追加] をクリックします。
    選択したテンプレートがリストに表示されます。
  5. [プロジェクトの追加] 領域のドロップダウン矢印をクリックして、プロジェクトを選択します。
    テンプレートを作成するには、Cloud Guardrails ライブラリからインポートします。
  6. ライブラリからテンプレートを追加するには、[その他のライブラリ アイテム] をクリックします。
  7. [インポート] をクリックします。
    選択してインポートした Cloud Guardrails テンプレートがテンプレートのリストに表示されます。
    Cloud Guardrails テンプレートのリストに、インポートした AWS テンプレートが追加されました。
  8. 使用可能なテンプレートのリストに他のブートストラップ テンプレートを追加できます。
    1. [Guardrails] タブで、[+新規] をクリックします。
    2. [ライブラリから] をクリックします。
    3. [ブートストラップ] カードをクリックして、別のテンプレートを選択します。
    たとえば、 [AWS Account Vending Machine (AVM) の作成] という名前のテンプレートを選択して、クラウド運用管理者がアカウント セキュリティ ベースラインとネットワークを使用してすでに構成している OU に新しい AWS アカウントを作成することができます。

結果

Cloud Guardrails テンプレート ライブラリからいくつかのブートストラップ テンプレートをインポートしました。これにより、これらのテンプレートを Cloud Guardrails の目的の状態として適用できるようになりました。

次のタスク

選択した Cloud Guardrails テンプレートを実行する、Cloud Guardrails の目的の状態を作成します。テンプレートから Cloud Guardrails の目的の状態を作成して適用する方法を参照してください。

Cloud Guardrails テンプレート リポジトリに直接アクセスできる場合は、使用可能なすべてのテンプレートがそこに表示されます。