Incident Manager での Systems Manager Automation ランブックの操作 - Incident Manager

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

Incident Manager での Systems Manager Automation ランブックの操作

AWS Systems Manager の機能である AWS Systems Manager Automation のランブックを使用して、AWS クラウド 環境内のアプリケーションとインフラストラクチャの一般的なタスクを自動化できます。

各ランブックはランブックワークフローを定義します。ランブックワークフローは、Systems Manager がマネージドノードまたは他の AWS リソースタイプに対して実行するアクションで構成されます。ランブックを使用すると、AWS リソースのメンテナンス、デプロイ、修復を自動化できます。

Incident Manager では、ランブックがインシデント対応および緩和を促進し、対応計画の一部として使用するランブックを指定します。

対応計画では、一般的に自動化されるタスク用に事前設定された数十のランブックから選択することも、カスタムランブックを作成することもできます。対応計画定義でランブックを指定すると、インシデントが発生するとシステムが自動的にランブックを起動できます。

重要

クロスリージョンフェイルオーバーによって作成されたインシデントは、対応計画で指定されているランブックを呼び出しません。

Systems Manager Automation、ランブック、および Incident Manager でのランブックの使用の詳細については、以下のトピックを参照してください。

ランブックワークフローの開始と実行に必要な IAM アクセス許可

Incident Manager には、インシデント対応の一環としてランブックを実行するアクセス許可が必要です。これらのアクセス許可を付与するには、AWS Identity and Access Management (IAM) ロール、ランブックサービスロール、およびオートメーション AssumeRole を使用します。

ランブックサービスロールは必須のサービスロールです。このロールは、Incident Manager に対して、ランブックのワークフローにアクセスして開始するために必要なアクセス許可を付与します。

オートメーション AssumeRole はランブック内で指定されている個々のコマンドを実行するのに必要なアクセス許可を付与します。

注記

AssumeRole が指定されていない場合、Systems Manager Automation は個々のコマンドにランブックサービスロールを使用しようとします。AssumeRole を指定しない場合は、ランブックサービスロールに必要なアクセス許可を追加する必要があります。追加しないと、ランブックはそれらのコマンドの実行に失敗します。

ただし、セキュリティのベストプラクティスとして、別の AssumeRole の使用をお勧めします。別の AssumeRole を使用すると、各ロールに追加しなければならない必要なアクセス許可を制限できます。

オートメーション AssumeRole について詳しくは、「AWS Systems Manager ユーザーガイド」の「オートメーションのサービスロール (ロールを引き受ける) アクセスの設定」を参照してください。

どちらのタイプのロールも IAM コンソールで手動で作成できます。対応計画を作成または更新する場合、Incident Manager にどちらかのロールを作成させることもできます。

ランブックサービスロールのアクセス許可

ランブックサービスロールアクセス許可は、以下のようなポリシーによって提供されます。

最初のステートメントにより、Incident Manager は Systems Manager StartAutomationExecution オペレーションを開始できます。このオペレーションは、3 つの Amazon リソースネーム (ARN) 形式で表されるリソース上で実行されます。

2 番目のステートメントにより、ランブックが影響を受けたアカウントで実行されるときに、ランブックサービスロールが別のアカウントのロールを引き受けることができます。詳細については、「AWS Systems Manager ユーザーガイド」の「複数の AWS リージョン とアカウントでのオートメーションの実行」を参照してください。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ssm:StartAutomationExecution", "Resource": [ "arn:aws:ssm:*:{{DocumentAccountId}}:automation-definition/{{DocumentName}}:*", "arn:aws:ssm:*:{{DocumentAccountId}}:document/{{DocumentName}}:*", "arn:aws:ssm:*::automation-definition/{{DocumentName}}:*" ] }, { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::*:role/AWS-SystemsManager-AutomationExecutionRole", "Condition": { "StringEquals": { "aws:CalledViaLast": "ssm.amazonaws.com" } } } ] }
オートメーション AssumeRole アクセス許可

対応計画を作成または更新する場合、Incident Manager が作成する AssumeRole にアタッチする AWS マネージドポリシーは、複数の中から選択できます。これらのポリシーは、Incident Manager ランブックシナリオで使用されるさまざまな一般的なオペレーションを実行するアクセス許可を付与します。これらのマネージドポリシーを 1 つ以上選択して、AssumeRole ポリシーにアクセス許可を付与できます。 以下の表では、Incident Manager コンソールから AssumeRole を作成するときに選択できるポリシーについて説明します。

AWS マネージドポリシー名 ポリシーの説明
AmazonSSMAutomationRole Systems Manager Automation サービスにランブックで定義されているアクティビティを実行するためのアクセス許可を付与します。このポリシーは、管理者および信頼されたパワーユーザーに割り当てます。
AWSIncidentManagerResolverAccess

ユーザーにインシデントを開始、表示、更新するアクセス許可を付与します。それらを使用して、インシデントダッシュボードで顧客のタイムラインイベントおよび関連アイテムを作成することもできます。

これらのマネージドポリシーを使用して、多くの一般的なインシデント対応シナリオにアクセス許可を付与できます。ただし、必要な特定のタスクに必須のアクセス許可は異なる場合があります。このような場合は、AssumeRole に追加のポリシーアクセス許可を付与する必要があります。詳細については、「AWS Systems Manager Automation runbook reference」を参照してください。

ランブックパラメータの使用

応答プランに Runbook を追加する場合、Runbook が実行時に使用するパラメータを指定できます。応答プランでは、静的な値と動的な値の両方を持つパラメータをサポートします。静的な値の場合、応答プランでパラメータを定義するときに値を入力します。動的な値の場合、システムはインシデントから情報を収集することによって正しいパラメータ値を決定します。Incident Manager は、次の動的なパラメータをサポートしています。

Incident ARN

Incident Manager がインシデントを作成すると、システムは対応するインシデントレコードの Amazon リソースネーム (ARN) をキャプチャし、それを Runbook にあるこのパラメータに入力します。

注記

この値は、タイプ String のパラメータにのみ割り当てることができます。他のタイプのパラメータに割り当てられた場合、Runbook は実行に失敗します。

Involved resources

Incident Manager がインシデントを作成すると、システムはインシデントに関連するリソースの ARN をキャプチャします。その後、これらのリソース ARN は、Runbook のこのパラメータに割り当てられます。

関連付けられたリソースについて

Incident Manager は、CloudWatch アラーム、EventBridge イベント、および手動で作成されたインシデントで指定された AWS リソースの ARN をランブックパラメータ値に入力できます。このセクションでは、Incident Manager がこのパラメータにデータを入力するときに ARN をキャプチャできるさまざまなタイプのリソースについて説明します。

CloudWatch アラーム

CloudWatch アラームアクションからインシデントが作成されると、Incident Manager は関連するメトリクスから以下のタイプのリソースを自動的に抽出します。その後、選択したパラメータに以下の関連リソースを入力します。

AWS のサービス リソースタイプ

Amazon DynamoDB

グローバルセカンダリインデックス

Streams

テーブル

Amazon EC2

イメージ

インスタンス

AWS Lambda

関数のエイリアス

関数のバージョン

関数

Amazon Relational Database Service (Amazon RDS)

クラスター

データベースインスタンス

Amazon Simple Storage Service (Amazon S3)

バケット

EventBridge ルール

システムが EventBridge イベントからインシデントを作成すると、Incident Manager は選択したパラメータにイベントの Resources プロパティを入力します。詳細については、「Amazon EventBridge ユーザーガイド」の「Amazon EventBridge イベント」を参照してください。

手動で作成されたインシデント

StartIncident API アクションを使用してインシデントを作成すると、Incident Manager は API コールの情報を使用して選択したパラメータにデータを入力します。具体的には、relatedItems パラメータで渡されるタイプ INVOLVED_RESOURCE の項目を使用してパラメータにデータを入力します。

注記

INVOLVED_RESOURCES 値は、タイプ StringList のパラメータにのみ割り当てることができます。他のタイプのパラメータに割り当てられた場合、Runbook は実行に失敗します。

ランブックを定義する

ランブックを作成する際には、ここで説明するステップに従うか、「Systems Manager ユーザーガイド」の「Working with runbooks」セクションに記載されているより詳細なガイドに従ってください。複数アカウント、複数リージョンのランブックを作成する場合は、「Systems Manager ユーザーガイド」の「複数の AWS リージョン とアカウントでのオートメーションの実行」を参照してください。

ランブックを定義する
  1. Systems Manager コンソール (https://console.aws.amazon.com/systems-manager/) を開きます。

  2. ナビゲーションペインで、[ドキュメント] を選択します。

  3. [Create automation (オートメーションを作成)] を選択します。

  4. 一意で識別可能なランブック名を入力します。

  5. ランブックの説明を入力します。

  6. オートメーションドキュメントが引き受ける IAM ロールを指定します。これにより、ランブックがコマンドを自動的に実行できるようになります。詳細については、「オートメーションワークフローにサービスロールのアクセスを設定する」を参照してください。

  7. (オプション) ランブックが起動時に使用する入力パラメータを追加します。ランブックを起動するときには、動的パラメータまたは静的パラメータを使用できます。動的パラメータはランブックが起動されるインシデントの値を使用します。静的パラメータは指定した値を使用します。

  8. (オプション) ターゲット タイプを追加します。

  9. (オプション) タグを追加します。

  10. ランブックが実行時に行うステップを記入します。各ステップには以下が必要です。

    • 名前。

    • ステップの目的の説明。

    • ステップ中に実行するアクション。ランブックでは、手動のステップを説明するのに 一時停止 というアクションタイプを使用します。

    • (オプション) コマンドプロパティ。

  11. 必要なランブックステップをすべて追加したら、オートメーションの作成を選択します。

クロスアカウント機能を有効にするには、インシデント中にランブックを使用するすべてのアプリケーションアカウントと、管理アカウントのランブックを共有します。

ランブックを共有する
  1. Systems Manager コンソール (https://console.aws.amazon.com/systems-manager/) を開きます。

  2. ナビゲーションペインで、[ドキュメント] を選択します。

  3. ドキュメントリストで共有するドキュメントを選択し、[詳細を表示] を選択します。[Permissions] タブで自分がドキュメントの所有者であることを確認します。ドキュメントの所有者のみがドキュメントを共有できます。

  4. [Edit] を選択します。

  5. コマンドをパブリックに共有するには、[Public] を選択し、[Save] を選択します。コマンドをプライベートに共有するには、[Private (プライベート)] を選択し、AWS アカウント ID を入力します。次に、[Add permission (アクセス権限の追加)] を選択し、[Save (保存)] を選択します。

Incident Manager ランブックテンプレート

Incident Manager には、チームが Systems Manager オートメーションでランブックの作成を開始できるように、以下のランブックテンプレートが用意されています。このテンプレートをそのまま使用するか、編集して、アプリケーションおよびリソースに固有の詳細を含めることができます。

Incident Manager ランブックテンプレートを検索する
  1. Systems Manager コンソール (https://console.aws.amazon.com/systems-manager/) を開きます。

  2. ナビゲーションペインで、[ドキュメント] を選択します。

  3. [ドキュメント] 領域で検索フィールドに AWSIncidents- を入力すると、Incident Manager のすべてのランブックが表示されます。

    ヒント

    [ドキュメント名のプレフィックス] フィルターオプションを使用するのではなく、フリーテキストで AWSIncidents- を入力してください。

テンプレートの使用
  1. Systems Manager コンソール (https://console.aws.amazon.com/systems-manager/) を開きます。

  2. ナビゲーションペインで、[ドキュメント] を選択します。

  3. ドキュメントリストから更新するテンプレートを選択します。

  4. [コンテンツ] タブを選択し、ドキュメントのコンテンツをコピーします。

  5. ナビゲーションペインで、[ドキュメント] を選択します。

  6. [Create automation (オートメーションを作成)] を選択します。

  7. 一意で識別可能な名前を入力します。

  8. [エディタ] タブを選択します。

  9. [Edit] (編集) を選択します。

  10. [ドキュメントエディタ] 領域にコピーした詳細を貼り付けるか入力します。

  11. [Create automation (オートメーションを作成)] を選択します。

AWSIncidents-CriticalIncidentRunbookTemplate

AWSIncidents-CriticalIncidentRunbookTemplate は、Incident Manager インシデントライフサイクルを手動ステップで提供するテンプレートです。これらのステップは、ほとんどのアプリケーションで使用できる一般的な手順ですが、応答者がインシデント解決に着手するのに十分な詳細が記載されています。