(オプション)OpsCenter を設定して、複数のアカウント間で OpsItems を一元管理する - AWS Systems Manager

(オプション)OpsCenter を設定して、複数のアカウント間で OpsItems を一元管理する

このセクションでは、クロスアカウント OpsItem 管理の OpsCenter を手動で設定する方法について説明します。このプロセスは引き続きサポートされていますが、Systems Manager Quick Setup を使用する新しいプロセスに置き換えられています。詳細については、「(オプション) Quick Setup を使用して、複数のアカウント間で OpsItems を管理するように OpsCenter を設定」を参照してください。

中央アカウントを設定して、メンバーアカウントの OpsItems 手動を作成し、それらの OpsItems を管理および修正することができます。中央アカウントには、AWS Organizations 管理アカウントか、AWS Organizations 管理アカウントと Systems Manager 委任管理者アカウントの両方を使用することができます。Systems Manager 委任管理者アカウントを中央アカウントとして使用することをお勧めします。この機能は、AWS Organizations を設定した後にのみ使用できます。

AWS Organizations では、ユーザーが作成して一元管理する組織に、複数の AWS アカウント を統合することができます。セントラルアカウントユーザーは、選択したすべてのメンバーアカウント用の OpsItems を同時に作成して、これらの OpsItems を管理できます。

このセクションの手順を使用して、Organizations の Systems Manager サービスプリンシパルを有効にし、アカウント間で OpsItems を操作するための AWS Identity and Access Management (IAM) アクセス許可を設定します。

注記

アカウント間で OpsCenter を使用する場合、/aws/issue タイプの OpsItems のみがサポートされます。

開始する前に

アカウント間で OpsItems を操作するように OpsCenter を設定する前に、以下を設定してください。

ステップ 1: リソースデータの同期を作成する

AWS Organizations のセットアップと設定の完了後、リソースデータ同期を作成することで、組織全体について OpsCenter の OpsItems を集計できるようになります。詳細については、「リソースデータ同期の作成」を参照してください。同期を作成するときは、[アカウントの追加] セクションで、必ず [AWS Organizations 設定のすべてのアカウントを含める] オプションを選択します。

ステップ 2: AWS Organizations で Systems Manager のサービスプリンシパルを有効にする

ユーザーがアカウントをまたいで OpsItems を使用できるようにするには、AWS Organizations で Systems Manager サービスプリンシパルを有効にしておく必要があります。以前に、他の機能を使用してマルチアカウントシナリオ用に Systems Manager を設定済みの場合は、Organizations 内で、既に Systems Manager サービスプリンシパルの設定が完了している場合があります。これを確認するには、 AWS Command Line Interface (AWS CLI) から以下のコマンドを実行します。他のマルチアカウントシナリオで Systems Manager を設定していない場合は、次の「AWS Organizations で Systems Manager サービスプリンシパルを有効にする」の手順に進んでください。

Systems Manager サービスプリンシパルが AWS Organizations で有効になっていることを確認するには
  1. 最新バージョンの をローカルマシンにダウンロードAWS CLIします。

  2. AWS CLI を開いて次のコマンドを実行し、認証情報と AWS リージョン リージョンを指定します。

    aws configure

    以下を指定するよう求められます。次の例では、各 ユーザー入力プレースホルダー を独自の情報に置き換えます。

    AWS Access Key ID [None]: key_name AWS Secret Access Key [None]: key_name Default region name [None]: region Default output format [None]: ENTER
  3. 次のコマンドを実行して、AWS Organizations のために Systems Manager サービスプリンシパルが有効になっていることを確認します。

    aws organizations list-aws-service-access-for-organization

    このコマンドは、下記の例のような情報を返します。

    { "EnabledServicePrincipals": [ { "ServicePrincipal": "member.org.stacksets.cloudformation.amazonaws.com", "DateEnabled": "2020-12-11T16:32:27.732000-08:00" }, { "ServicePrincipal": "opsdatasync.ssm.amazonaws.com", "DateEnabled": "2022-01-19T12:30:48.352000-08:00" }, { "ServicePrincipal": "ssm.amazonaws.com", "DateEnabled": "2020-12-11T16:32:26.599000-08:00" } ] }
AWS Organizations で Systems Manager サービスプリンシパルを有効化する

まだ、Systems Manager サービスプリンシパルを Organizations 用に設定していない場合は、次に説明する手順に従って設定します。このコマンドの詳細については、「AWS CLI コマンドリファレンス」の「enable-aws-service-access」を参照してください。

  1. まだ AWS Command Line Interface (AWS CLI) をインストールして設定していない場合は、インストールして設定します。詳細については、「CLI のインストール」および「CLI の設定」を参照してください。

  2. 最新バージョンの をローカルマシンにダウンロードAWS CLIします。

  3. AWS CLI を開いて次のコマンドを実行し、認証情報と AWS リージョン リージョンを指定します。

    aws configure

    以下を指定するよう求められます。次の例では、各 ユーザー入力プレースホルダー を独自の情報に置き換えます。

    AWS Access Key ID [None]: key_name AWS Secret Access Key [None]: key_name Default region name [None]: region Default output format [None]: ENTER
  4. 以下のコマンドを実行して、AWS Organizations 用に Systems Manager サービスプリンシパルを有効にします。

    aws organizations enable-aws-service-access --service-principal "ssm.amazonaws.com"

ステップ 3: サービスにリンクされたロール AWSServiceRoleForAmazonSSM_AccountDiscovery を作成する

AWSServiceRoleForAmazonSSM_AccountDiscovery ロールなどサービスにリンクされたロールは、AWS サービス (例えば Systems Manager) に直接リンクされた、一意のタイプの IAM ロールです。サービスにリンクされたロールはサービスによって事前定義されており、サービスがお客様の代わりに他の AWS サービス サービスを呼び出す際に必要な、すべてのアクセス許可が含まれています。AWSServiceRoleForAmazonSSM_AccountDiscovery サービスにリンクされたロールの詳細については、Systems Manager アカウント検出のためのサービスにリンクされたロールの許可を参照してください。

AWS CLI を使用してサービスにリンクされたロール AWSServiceRoleForAmazonSSM_AccountDiscovery を作成するためには、次の手順を実行します。この手順で使用するコマンドの詳細については、「AWS CLI コマンドリファレンス」の「create-service-linked-role」を参照してください。

AWSServiceRoleForAmazonSSM_AccountDiscovery のサービスにリンクされたロールを作成するには
  1. AWS Organizations 管理アカウントにサインインします。

  2. Organizations の管理アカウントにサインインした状態で、次のコマンドを実行します。

    aws iam create-service-linked-role \ --aws-service-name accountdiscovery.ssm.amazonaws.com \ --description "Systems Manager account discovery for AWS Organizations service-linked role"

タスク 4: アカウント間で OpsItems を操作するためのアクセス許可を設定する

AWS CloudFormation スタックセットを使用して、アカウント間で OpsItems を操作するアクセス許可をユーザーに付与する OpsItemGroup リソースポリシーと IAM 実行ロールを作成します。これを開始するには、OpsCenterCrossAccountMembers.zip ファイルをダウンロードしてそれを zip 解凍します。このファイルには、OpsCenterCrossAccountMembers.yaml AWS CloudFormation テンプレートファイルが含まれています。このテンプレートを使用してスタックセットを作成すると、CloudFormation は、アカウント内で、自動的に OpsItemCrossAccountResourcePolicy リソースポリシーと OpsItemCrossAccountExecutionRole 実行ロールを作成します。シークレットを作成する方法については、「AWS CloudFormation ユーザーガイド」の「スタックセットの作成」を参照してください。

重要

このタスクに関しては、次の重要事項に留意してください。

  • このスタックセットは、AWS Organizations 管理アカウントにサインインした状態でデプロイする必要があります。

  • この手順は、代理管理者アカウントを含むアカウント間で OpsItems を操作するすべてのアカウントにサインインして、繰り返し実行する必要があります。

  • 別の AWS リージョン でクロスアカウントの OpsItems 管理を有効にする場合は、テンプレートの [Specify regions] (リージョンの指定) セクションで、[Add all regions] (すべてのリージョンを追加) を選択します。クロスアカウントの OpsItem 管理は、オプトインリージョンではサポートされていません。

OpsItem には、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスや Amazon Simple Storage Service (Amazon S3) バケットなど、影響を受けたリソースの詳細情報を含めることができます。前のステップ 4 で作成した OpsItemCrossAccountExecutionRole 実行ロールにより、メンバーアカウントの関連リソースを表示するための読み取り専用のアクセス許可が OpsCenter に付与されます。これと同時に、管理アカウントが関連リソースを表示したり操作したりするための許可を付与する、IAM ロールを作成する必要があります。この処理はこのタスクで完了します。

これを開始するには、OpsCenterCrossAccountManagementRole.zip ファイルをダウンロードしてそれを zip 解凍します。このファイルには、OpsCenterCrossAccountManagementRole.yaml AWS CloudFormation テンプレートファイルが含まれています。このテンプレートを使用してスタックを作成すると、CloudFormation はアカウント内で、自動的に OpsCenterCrossAccountManagementRole IAM ロールを作成します。スタック作成の詳細については、「AWS CloudFormation ユーザーガイド」の「AWS CloudFormation コンソールでのスタックの作成」 を参照してください。

重要

このタスクに関しては、次の重要事項に留意してください。

  • アカウントを、OpsCenter の委任管理者として指定する予定の場合は、スタックの作成時に必ずその AWS アカウント を指定してください。

  • この手順は、AWS Organizations の管理アカウントにログインした状態で実行し、委任管理者アカウントに再度ログインした後にも実行する必要があります。