

# CloudFormation StackSets のためのサービスマネージドスタックインポート
<a name="service-managed-import"></a>

CloudFormation スタックのインポートオペレーションでは、既存のスタックを新規または既存の StackSets にインポートできるため、既存のスタックを 1 回のオペレーションで StackSet に移行できます。StackSets はスタックの機能を拡張するため、1 回のオペレーションで複数のアカウントとリージョンにまたがるスタックを作成、更新、削除できます。

**サービスマネージドスタックのインポートに関する考慮事項**
+ スタックのインポートオペレーションには、StackSets で信頼アクセスを有効にするなど、関連付けられた AWS Organizations を管理できる管理アカウントまたは委任された管理アカウントが必要です。
+ ターゲットアカウントは、管理アカウントまたは委任された管理者アカウントによって管理される AWS Organizations のメンバーである必要があります。
+ ターゲットスタックは、ターゲット OU の 1 つに存在します。
+ ターゲットアカウントは AWS Organizations のメンバーである必要があります。
+ AWS Organizations アクセスは、組織の `ACTIVATED` 状態である必要があります。
+ インポートされるスタックは、管理アカウントではなく、メンバーアカウントのいずれかに存在する必要があります。

**Topics**
+ [サービスマネージド型のスタックを新しい StackSet にインポートする (コンソール)](#import-service-managed-stack-to-new-stackset)
+ [サービスマネージド型のスタックを作成して、既存の StackSet にインポートする (コンソール)](#import-service-managed-stack-to-existing-stackset)
+ [サービスマネージド型のスタックを既存の StackSet にインポートする (コンソール)](#import-service-managed-stack-to-existing-stackset-console)
+ [サービスマネージド型のスタックを StackSet にインポートする (AWS CLI)](#import-service-managed-stack-to-stackset.cli)

## サービスマネージド型のスタックを新しい StackSet にインポートする (コンソール)
<a name="import-service-managed-stack-to-new-stackset"></a>

AWS マネジメントコンソール を使用して、スタックを新しい StackSet にインポートする

新しいスタックを StackSet にインポートするには、インポートするリソースを含むスタックを特定します。

1. AWS マネジメントコンソール にサインインし、CloudFormation コンソール ([https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/)) を開きます。

1. ナビゲーションペインから [**StackSets**] を選択します。

1. [**StackSets**] ページの上部で [**Create StackSet (StackSet の作成)**] を選択します。

1. **[テンプレートを選択]** ページで、次のようにします。

   1. **[StackSet アクセス許可モデル]** で、**[サービス管理のアクセス許可]** (を選択します。

   1. **前提条件 - テンプレートの準備** で、**[テンプレートの準備完了]** を選択し、次のいずれかのオプションを使用してテンプレートを選択します。
      + **[Amazon S3 URL]** で、**[Amazon S3 URL]** フィールドに Amazon S3 URL を入力します。
      + **[テンプレートファイルのアップロード]** で、ローカルコンピュータの CloudFormation テンプレートを選択します。

   設定を受け入れて、**[Next]** (次へ) を選択してください。

1. **[StackSet の詳細を指定]** ページで、以下を実行します。

   1. **[StackSet 名]** ボックスに StackSet 名を入力します。

   1. (オプション) **[StackSet description]** (StackSet の説明) セクションに説明を入力します。

   **[スタックオプションの設定]** ページで、選択内容を確認し、**[次へ]** を選択します。

1. [**デプロイオプションの設定**] ページで、以下を実行します。

   1. **[StackSet にスタックを追加]** で、**[スタックをスタックセットにインポート]** を選択します。

   1. **[Stacks to import]** (インポートするスタック) で、スタックのインポート方法を選択します。

      1. **[Stack ID]** (スタック ID) には、スタック ID を入力します。

      1. **[スタック URL]** で、Amazon S3 URL を入力します。

1. **[組織単位を関連付ける]** で、次を実行します:

   1. ルート OU を使用するには、**[組織に関連付ける]** を選択します。

   1. **[組織単位 (OU) に関連付ける]** を選択して、インポートするスタックの親 OU ID を入力します。例えば、`Stack 1` と `Stack 2` が `OU1` 未満で、`Stack 3` が `OU2` 未満の場合は、`OU1` と `OU2` を入力します。

   設定を受け入れて、**[Next]** (次へ) を選択してください。

1. **[Review]** (確認) ページで、設定を確認し、**[Submit]** (送信) を選択します。

## サービスマネージド型のスタックを作成して、既存の StackSet にインポートする (コンソール)
<a name="import-service-managed-stack-to-existing-stackset"></a>

既存のスタックを新しい StackSet にインポートするには、インポートするリソースを含むスタックを特定します。

**StackSet を作成してスタックをインポートするには**

1. AWS マネジメントコンソール にサインインし、CloudFormation コンソール ([https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/)) を開きます。

1. ナビゲーションペインから [**StackSets**] を選択します。

1. [**StackSets**] ページの上部で [**Create StackSet (StackSet の作成)**] を選択します。

1. **[テンプレートを選択]** ページで、次のようにします。

   1. **[StackSet アクセス許可モデル]** で、**[サービス管理のアクセス許可]** (を選択します。

   1. **前提条件 - テンプレートの準備** で、**[テンプレートの準備完了]** を選択し、次のいずれかのオプションを使用してテンプレートを選択します。
      + **[Amazon S3 URL]** で、**[Amazon S3 URL]** フィールドに Amazon S3 URL を入力します。
      + **[テンプレートファイルのアップロード]** で、ローカルコンピュータの CloudFormation テンプレートを選択します。

   設定を受け入れて、**[Next]** (次へ) を選択してください。

1. **[StackSet の詳細を指定]** ページで、以下を実行します。

   1. **[StackSet 名]** ボックスに StackSet 名を入力します。

   1. (オプション) **[StackSet description]** (StackSet の説明) セクションに説明を入力します。

   **[スタックオプションの設定]** ページで、選択内容を確認し、**[次へ]** を選択します。

1. [**デプロイオプションの設定**] ページで、以下を実行します。

   1. **[Add stacks to stack set]** (スタックセットにスタックを追加) で、**[Deploy new stacks]** (新しいスタックのデプロイ) を選択します。

1. 次の情報を **[組織単位を関連付ける]** セクションに追加します。

   1. ルート OU を使用するには、**[組織に関連付ける]** を選択します。

   1. **[組織単位 (OU) に関連付ける]** を選択して、インポートするスタックの親 OU ID を入力します。例えば、`Stack 1` と `Stack 2` が `OU1` 未満で、`Stack 3` が `OU2` 未満の場合は、`OU1` と `OU2` を入力します。

1. **[Specify regions]** (リージョンの指定) と **[Deployment options]** (デプロイオプション) で、選択内容を確認します。

   設定を受け入れて、**[Next]** (次へ) を選択してください。

1. **[Review]** (確認) ページで、設定を確認し、**[Submit]** (送信) を選択します。

## サービスマネージド型のスタックを既存の StackSet にインポートする (コンソール)
<a name="import-service-managed-stack-to-existing-stackset-console"></a>

StackSet を選択し、インポートするスタックを特定します。

**スタックを既存の StackSet にインポートするには**

1. AWS マネジメントコンソール にサインインし、CloudFormation コンソール ([https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/)) を開きます。

1. ナビゲーションペインから [**StackSets**] を選択します。

1. スタックをインポートする StackSet を選択し、**[アクション]** ドロップダウンから **[StackSet にスタックを追加]** を選択します。

1. [**デプロイオプションの設定**] ページで、以下を実行します。

   1. **[StackSet にスタックを追加]** で、**[スタックをスタックセットにインポート]** を選択します。

   1. **[インポートするスタック]** で、次の操作を行います。

      1. **[Stack ID]** (スタック ID) には、スタック ID を入力します。

      1. **[スタック URL]** で、Amazon S3 URL を入力します。

   1. **[組織単位を関連付ける]** で、次を実行します:

      1. ルート OU を使用するには、**[組織に関連付ける]** を選択します。

      1. **[組織単位 (OU) に関連付ける]** を選択して、インポートするスタックの親 OU ID を入力します。例えば、`Stack 1` と `Stack 2` が `OU1` 未満で、`Stack 3` が `OU2` 未満の場合は、`OU1` と `OU2` を入力します。

      設定を受け入れて、**[Next]** (次へ) を選択してください。

1. **[Specify overrides]** (上書きの指定) ページを確認し、**[Next]** (次へ) を選択します。

1. **[Review]** (確認) ページを確認して見直し、**[Submit]** (送信) を選択します。

## サービスマネージド型のスタックを StackSet にインポートする (AWS CLI)
<a name="import-service-managed-stack-to-stackset.cli"></a>

StackSet が作成されたら、インポートするスタックのスタック ID を渡すことでスタックをインポートできます。マッピング先の OU ID リストを渡すこともできます。

CloudFormation は、これらの OU 内のユーザー提供のスタックをインポートし、それらの OU を StackSet のデプロイターゲットとして使用します。入力に示されたスタック ID は、内部的に OU ID リスト入力の最も近い OU にマッピングされます。スタックが入力リスト内の既存の OU ID に属していない場合、AWS CLI は `StackNotFoundException` エラーを返します。

`import-stacks-to-stack-set` オペレーションは、OU ID 入力のスタックのスタックインスタンスを作成します。次の AWS CLI の例では、`import-stacks-to-stack-set` オペレーションを使用して、スタックを StackSet にインポートします。
+ `import-stacks-to-stack-sets` オペレーションを使用するには、スタックセットにインポートする `stack-ids` または `stack-ids-url` を指定します。

  ```
  aws cloudformation import-stacks-to-stack-set \
    --stack-set-name {{ServiceMangedStackSet}} \
    --stack-ids "{{arn:123456789012:us-east-1:Stack1}}" \
    --organizational-unit-ids {{ou-examplerootid111-exampleouid111}}
  ```

  ```
  aws cloudformation import-stacks-to-stack-set \
    --stack-set-name {{ServiceMangedStackSet}} \
    --stack-ids-url {{https://amzn-s3-demo-bucket.s3.us-west-2.amazonaws.com/file-name.json}} \
    --organizational-unit-ids {{ou-examplerootid111-exampleouid111}}
  ```

**注記**  
`import-stacks-to-stack-sets` オペレーションでは、インポートされるスタックをその特定の OU に関連付けることができるように、少なくとも 1 つの組織単位 ID (OU ID) を指定する必要があります。このオペレーションでは、関連する OU 内の他のメンバーアカウントのスタックインスタンスは作成されません。関連する OU のメンバーアカウントを更新するには、`create-stack-instances` または `update-stack-instances` を使用します。

`create-stack-set` は、直接アップロードまたは Amazon S3 のいずれかから、ユーザー提供のテンプレートを使用して、OU の下のすべてのアカウントのスタック インスタンスを作成します。次の AWS CLI の例では、`create-stack-set` オペレーションを使用して、スタックを新しい StackSet にインポートします。
+ `create-stack-set` オペレーションを使用するには、StackSet 名を指定し、新しく作成した StackSet にスタックをインポートします。

  ```
  aws cloudformation create-stack-set \
    --template-url {{https://amzn-s3-demo-bucket.s3.us-west-2.amazonaws.com/file-name.json}} \
    --permission-model SERVICE_MANAGED \
    --auto-deployment Enabled=true
  ```