Slack リソースでの AWS CloudFormation を使った AWS Support アプリの作成 - AWS Support

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Slack リソースでの AWS CloudFormation を使った AWS Support アプリの作成

Slack での AWS Support アプリには、AWS CloudFormation リソースのモデル化と設定を支援し、リソースとインフラストラクチャの作成および管理に要する時間を短縮するサービス「AWS」が統合されています。必要なすべての AWS リソース (AccountAlias や SlackChannelConfiguration など) を説明するテンプレートを作成すれば、AWS CloudFormation がお客様に代わってこれらのリソースのプロビジョニングや設定を処理します。

AWS CloudFormation を使用すると、テンプレートを再利用して AWS Support アプリリソースを同じように繰り返してセットアップできます。リソースを一度記述するだけで、同じリソースを複数の AWS アカウント とリージョンで何度でもプロビジョニングできます。

AWS Support アプリと AWS CloudFormation テンプレート

AWS Support アプリおよび関連サービスのリソースをプロビジョニングして設定するには、AWS CloudFormation テンプレートについて理解しておく必要があります。テンプレートは、JSONまたはYAMLでフォーマットされたテキストファイルです。これらのテンプレートには、AWS CloudFormation スタックにプロビジョニングしたいリソースを記述します。JSON や YAML に不慣れな方は、AWS CloudFormation Designer を使えば、AWS CloudFormation テンプレートを使いこなすことができます。詳細については、「AWS CloudFormation ユーザーガイド」の「AWS CloudFormation Designer とは」を参照してください。

AWS Support アプリは、AWS CloudFormation での AccountAlias と SlackChannelConfiguration の作成をサポートします。AccountAlias と SlackChannelConfiguration リソース向けの JSON および YAML テンプレートの例を含む詳細については、「AWS CloudFormation ユーザーガイド」の「AWS Support アプリケーションのリソースタイプのリファレンス」を参照してください。

組織用の Slack 設定リソースを作成する

CloudFormation テンプレートを使用して、AWS Support アプリケーションに必要なリソースを作成できます。組織の管理者アカウントである場合は、AWS Organizations でテンプレートを使用して、メンバーアカウント用にこれらのリソースを作成できます。

例えば、テンプレートを使用して組織内のすべてのアカウントに同じ Slack ワークスペース設定を作成し、別のテンプレートを使用して特定の AWS アカウント または組織単位 (OU) に異なる Slack チャンネル設定を作成することができます。テンプレートを使用して Slack ワークスペース設定を作成して、メンバーアカウントが AWS アカウント の必要な Slack チャンネルを設定できるようにすることもできます。

CloudFormation テンプレートを使用するかどうかを選択できます。CloudFormation テンプレートを使用しない場合は、手動で次の手順を実行できます。

  • AWS Support Center Console で AWS Support アプリケーションを作成します。

  • AWS Support でサポートケースを作成して複数のアカウントを承認し、AWS Support アプリケーションを使用できるようにします。

  • RegisterSlackWorkspaceForOrganization API 操作を呼び出して、アカウントの Slack ワークスペースを登録します。CloudFormation スタックはユーザーに代わってこの API オペレーションを呼び出します。

次の手順に従って、組織で CloudFormation テンプレートをアップロードします。[AWS Support アプリケーションのリソースタイプのリファレンス] ページで、テンプレートのサンプルを使用できます。

テンプレートは、CloudFormation が次のリソースを作成するよう指示します。

Slack 向けの CloudFormation テンプレートを更新する

まず、以下のテンプレートを使用してスタックを作成します。テンプレートは Slack のワークスペースとチャンネルの有効な値に置き換える必要があります。

注記

テンプレートを使用して組織の AccountAlias リソースを作成することはお勧めしません。AccountAlias リソースは、AWS Support アプリケーション内の AWS アカウント を一意に識別します。メンバーアカウントは、サポートセンターコンソールにアカウント名を入力できます。詳細については、「Slack ワークスペースを承認する」を参照してください。

Slack 向けの CloudFormation テンプレートを更新するには
  1. 組織の管理者アカウントである場合は、メンバーアカウントが CloudFormation を使用してリソースを作成できるようにするため、アカウントの Slack ワークスペースを手動で承認する必要があります。まだの場合は、「Slack ワークスペースを承認する」を参照してください。

  2. [AWS Support アプリケーションのリソースタイプのリファレンス]ページから、希望するリソース向けの JSON テンプレートまたは YAML テンプレートをコピーします。

  3. テキストエディタで、テンプレートを新しいファイルに貼り付けます。

  4. テンプレートで、必要なパラメータを指定します。少なくとも、以下のフィールドの値を置き換えてください。

    • Slack ワークスペース ID を使用した TeamId

    • Slack チャンネル ID を使用した ChannelId

    • Slack チャンネル設定を識別する名前付き ChannelName

    ヒント

    ワークスペースとチャンネル ID を確認するには、ブラウザで Slack チャンネルを開きます。URL は、ワークスペース ID が最初の識別子で、チャンネル ID が 2 番目の識別子です。例えば、https://app.slack.com/client/T012ABCDEFG/C01234A5BCD では、T012ABCDEFG がワークスペース ID で、C01234A5BCD がチャンネル ID です。

  5. ファイルを JSON または YAML ファイルとして保存します。

管理者アカウント用のスタックを作成する

次に、組織の管理者アカウント用のスタックを作成する必要があります。この手順では、ユーザーに代わって RegisterSlackWorkspaceForOrganization API 操作が呼び出され、Slack でワークスペースが承認されます。

注記

前の手順で更新した Slack ワークスペース設定テンプレートを管理者アカウント用にアップロードすることをお勧めします。AWS Support アプリケーションを使用するように管理者アカウントを設定していない場合は、Slack のチャンネル設定テンプレートをアップロードする必要はありません。

管理者アカウント用のスタックを作成するには
  1. 組織の管理者アカウントとして AWS Management Console にサインインします。

  2. AWS CloudFormation コンソール (https://console.aws.amazon.com/cloudformation) を開きます。

  3. [Region selector] (リージョンセレクタ) で次の AWS リージョン のいずれかを選択します (まだ選択していない場合)。

    • 欧州 (フランクフルト)

    • ヨーロッパ (アイルランド)

    • 欧州 (ロンドン)

    • 米国東部 (バージニア北部)

    • 米国東部 (オハイオ)

    • 米国西部 (オレゴン)

    • アジアパシフィック (シンガポール)

    • アジアパシフィック (東京)

    • カナダ (中部)

  4. 手順に従って、スタックを作成します。詳細については、「AWS CloudFormation コンソールでのスタックの作成」を参照してください。

    CloudFormation が正常にスタックを作成したら、同じテンプレートを使用して組織向けのスタックセットを作成できます。

組織のスタックセットを作成する

次に、同じテンプレートを Slack ワークスペース設定に使用して、service-managed アクセス許可のあるスタックセットを作成します。スタックセットを使用して組織全体のスタックを作成することも、必要な OU を指定することもできます。詳細については、「スタックセットを作成する」を参照してください。

この手順では、ユーザーに代わって RegisterSlackWorkspaceForOrganization API 操作も呼び出します。この API 操作では、メンバーアカウントの Slack を使用してワークスペースを承認されます。

組織のスタックセットを作成するには
  1. 組織の管理者アカウントとして AWS Management Console にサインインします。

  2. AWS CloudFormation コンソール (https://console.aws.amazon.com/cloudformation) を開きます。

  3. [Region selector] (リージョンセレクタ) で、前の手順で使用したものと同じ AWS リージョン を選択します (まだ選択していない場合)。

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

  5. [Create StackSet] (StackSet の作成) を選択します。

  6. [Choose a template] (テンプレートの選択) ページで、以下のオプションはデフォルトのままにします。

    • [Permissions] (アクセス許可) で、[Service-managed permissions] (サービスマネージド型のアクセス許可) を選択します。

    • [Prerequisite - Prepare template] (前提条件 - テンプレートの準備) で、[Template is ready] (テンプレートの準備完了) を受け入れます。

  7. [Specify template] (テンプレートの指定) で、[Upload a template file] (テンプレートファイルのアップロード) を選択し、[Choose file] (ファイルの選択) を選択します。

  8. ファイルを選択してから、[Next] (次へ) を選択します。

  9. [Specify StackSet details] (StackSet の詳細を指定) ページで、スタック名 (support-app-slack-workspace など) を入力してから [Next] (次へ) を選択します。

  10. [Configure StackSet options] (StackSet オプションを設定) ページで、デフォルトオプションを受け入れてから [Next] (次へ) を選択します。

  11. [Set deployment options] (デプロイオプションの設定) ページの [Add stacks to stack set] (スタックをスタックセットに追加) では、デフォルトの [Deploy new stacks] (新しいスタックをデプロイ) オプションを受け入れます。

  12. [Deployment targets] (デプロイターゲット) では、組織全体のスタックを作成するか、特定の OU のスタックを作成するかを選択します。OU を選択した場合は、OU ID を入力します。

  13. [Specify regions] (リージョンを指定) には、次の AWS リージョン のいずれかだけを入力します。

    • 欧州 (フランクフルト)

    • ヨーロッパ (アイルランド)

    • 欧州 (ロンドン)

    • 米国東部 (バージニア北部)

    • 米国東部 (オハイオ)

    • 米国西部 (オレゴン)

    • アジアパシフィック (シンガポール)

    • アジアパシフィック (東京)

    • カナダ (中部)

    注記:
    • ワークフローを効率化するには、手順 3 で選択したものと同じ AWS リージョン を使用することをお勧めします。

    • 複数の AWS リージョン を選択すると、スタックの作成時に競合が発生する可能性があります。

  14. [Deployment options] (デプロイオプション) の [Failure tolerance - optional] (障害耐性 - オプション) に、CloudFormation がオペレーションを停止するまでにスタックに障害が発生する可能性のあるアカウントの数を入力します。追加するアカウントの数から 1 を引いた数を入力することをお勧めします。例えば、指定した OU にメンバーアカウントが 10 個ある場合は、「9」と入力します。つまり、CloudFormation がオペレーションを 9 回失敗しても、少なくとも 1 つのアカウントは成功することになります。

  15. [Next] (次へ) をクリックします。

  16. [Review] (確認) ページで選択内容を確認し、[Submit] (送信) を選択します。[Stack Instances] (スタックインスタンス) タブでスタックのステータスをチェックできます。

  17. (オプション) Slack チャンネル設定のテンプレートをアップロードするには、この手順を繰り返します。サンプルテンプレートでは、IAM ロールの作成と AWS マネージドポリシーのアタッチも行います。このロールには、お客様に代わって他のサービスにアクセスするために必要なアクセス許可があります。詳細については、「AWS Support アプリへのアクセスの管理」を参照してください。

    Slack チャンネル設定を作成するスタックセットを作成しない場合、メンバーアカウントは Slack チャンネルを手動で設定できます。詳細については、「Slack チャンネルの設定」を参照してください。

CloudFormation がスタックを作成すると、各メンバーアカウントはサポートセンターコンソールにサインインし、設定した Slack ワークスペースとチャンネルを見つけることができます。その後、AWS アカウント で AWS Support アプリケーションを使用できるようになります。「Slack チャンネルでのサポートケースの作成」を参照してください。

ヒント

新しいテンプレートをアップロードする必要がある場合は、以前に指定したものと同じ AWS リージョン を使用することをお勧めします。

CloudFormation の詳細はこちら

CloudFormation の詳細については、以下のリソースを参照してください。

Terraform を使用して AWS Support アプリケーションのリソースを作成する

Terraform を使用して AWS アカウント 向けの AWS Support アプリケーションのリソースを作成することもできます。Terraform は、クラウドアプリケーションに使用できるコードとしてのインフラストラクチャツールです。CloudFormation スタックをアカウントにデプロイする代わりに、Terraform を使用して AWS Support アプリケーションリソースを作成できます。

Terraform をインストールしたら、必要な AWS Support アプリケーションリソースを指定できます。Terraform は、RegisterSlackWorkspaceForOrganization API 操作を呼び出し、ユーザーに代わって Slack ワークスペースを登録してリソースを作成します。その後、サポートセンターコンソールにログインして、設定した Slack のワークスペースとチャンネルを見つけることができます。

メモ
  • 組織の管理者アカウントである場合は、メンバーアカウントがリソースの作成に Terraform を使用できるよう、アカウントの Slack ワークスペースを手動で承認する必要があります。まだの場合は、「Slack ワークスペースを承認する」を参照してください。

  • CloudFormation スタックセットとは異なり、Terraform を使用して組織内の OU 向けの AWS Support アプリケーションリソースを作成することはできません。

  • これらのアップデートのイベント履歴は、AWS CloudTrail の Terraform からも確認できます。これらのイベントの eventSourcecloudcontrolapi.amazonaws.com.rproxy.goskope.comsupportapp.amazonaws.com になります。詳細については、「AWS CloudTrail を使用した Slack での AWS Support アプリ API コールのログ記録」を参照してください。

詳細

Terraform の詳細については、以下のトピックを参照してください。