0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS DevOps Agent 導入手順書

0
Posted at

バージョン: 2025年7月時点
参照元:


概要

AWS DevOps Agent は、インフラ監視・インシデント調査・推奨事項の提示を自動化する AI エージェントサービスです。本手順書では、Agent Space を作成して DevOps Agent を利用可能な状態にするまでの 3 通りの方法を説明します。

用語 説明
Agent Space AWS DevOps Agent がアクセスするツールとインフラを定義する論理コンテナ
Operator App (Web App) オペレーターがインシデント調査・推奨確認に使用する Web インターフェース
監視アカウント (Monitor) Agent Space を作成するプライマリ AWS アカウント
ソースアカウント (Source) クロスアカウント監視の対象となる追加 AWS アカウント

前提条件

共通

  • 対象リージョン: us-east-1 / us-west-2 / ap-southeast-2 / ap-northeast-1 / eu-central-1 / eu-west-1
  • IAM ロールの作成・ポリシーアタッチ権限を持つ認証情報

方法別の追加要件

方法 追加要件
マネジメントコンソール AWS コンソールへのサインイン
AWS CLI AWS CLI v2 のインストールと認証情報設定 (aws configure)
AWS CDK AWS CLI v2 + Node.js 18以降 + CDK CLI (npm install -g aws-cdk)

導入方法の選択肢

方法 特徴 推奨シーン
マネジメントコンソール GUI で手軽にセットアップ 初回試用・少数環境
AWS CLI スクリプト化・自動化向き CI/CD パイプラインへの組み込み
AWS CDK IaC で管理、再現性が高い 本番環境・チーム運用

方法1: マネジメントコンソールから導入

所要時間: 約10〜15分

Step 1: AWS DevOps Agent コンソールにアクセス

  1. AWS マネジメントコンソールにサインイン
  2. 検索バーで「DevOps Agent」と入力し、サービスに移動

AWS コンソール - DevOps Agent サービス選択
console-01-service-navigate.png

Step 2: Agent Space の作成開始

  1. [Create Agent Space] をクリック
    console-02-create-button.png

[Agent Space details] セクションで以下を入力:

項目 説明 必須
Name Agent Space の識別名
Description 用途の説明文 任意
Agent response language エージェントの応答言語(Japanese (Japan) など 14言語対応) 任意

Agent Space 詳細設定画面
console-03-agentspace-details.png

ヒント: 応答言語を設定しない場合、エージェントは入力言語に合わせて応答します。「Ask for human support」機能で作成される AWS Support ケースの言語にも影響します。

Step 3: プライマリアカウントのアクセス設定

[Give this Agent Space AWS resource access] セクションで IAM ロールを設定します。

オプション 説明 要件
Auto-create a new AWS DevOps Agent role(推奨) 適切な権限を持つロールを自動作成 IAM ロール作成権限が必要
Assign an existing role 事前作成済みのロールを選択 対応するポリシーが付与済みのロールが必要
Create a new role using a policy template アクセスするサービス/リソースを制限したい場合 トラストポリシーとインラインポリシーの手動設定

IAM ロール設定オプション
console-04-iam-role-options.png

Step 4: Operator App (Web App) の有効化

[Enable Operator App] セクションでオペレーター用 Web App の IAM ロールを設定します。設定オプションは Step 3 と同じ 3 種類です。

Operator App 有効化設定
console-05-operator-app.png

Step 5: タグの追加(任意)

[Tags] セクションを展開し、[Add new tag] でキー・バリューペアのタグを追加できます(最大 50 個)。

Step 6: 作成完了と確認

  1. [Create] をクリック
  2. Agent Space 詳細ページで [Operator access] ボタンが表示されることを確認
  3. クリックして Web App が新しいタブで開けば設定完了

Agent Space 作成完了 - 詳細ページ
console-06-creation-complete.png


方法2: AWS CLI で導入

所要時間: 約20分

以下のプレースホルダーを実際の値に置き換えてください:

プレースホルダー 説明
<MONITORING_ACCOUNT_ID> 監視アカウントの12桁の AWS アカウントID
<REGION> リージョンコード(例: ap-northeast-1
<AGENT_SPACE_ID> create-agent-space コマンドのレスポンスから取得

Step 1: Agent Space 用 IAM ロールの作成

1-1. トラストポリシーの作成

cat > devops-agentspace-trust-policy.json << 'EOF'
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "aidevops.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "<MONITORING_ACCOUNT_ID>"
        },
        "ArnLike": {
          "aws:SourceArn": "arn:aws:aidevops:<REGION>:<MONITORING_ACCOUNT_ID>:agentspace/*"
        }
      }
    }
  ]
}
EOF

1-2. IAM ロールの作成

aws iam create-role \
  --role-name DevOpsAgentRole-AgentSpace \
  --assume-role-policy-document file://devops-agentspace-trust-policy.json \
  --region <REGION>

# ロール ARN を確認・保存(後続ステップで使用)
aws iam get-role \
  --role-name DevOpsAgentRole-AgentSpace \
  --query 'Role.Arn' --output text

CLI - Agent Space ロール作成結果
cli-01-agentspace-role-created.png

1-3. マネージドポリシーのアタッチ

aws iam attach-role-policy \
  --role-name DevOpsAgentRole-AgentSpace \
  --policy-arn arn:aws:iam::aws:policy/AIDevOpsAgentAccessPolicy

1-4. Resource Explorer 用インラインポリシーのアタッチ

cat > devops-agentspace-additional-policy.json << 'EOF'
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowCreateServiceLinkedRoles",
      "Effect": "Allow",
      "Action": ["iam:CreateServiceLinkedRole"],
      "Resource": [
        "arn:aws:iam::<MONITORING_ACCOUNT_ID>:role/aws-service-role/resource-explorer-2.amazonaws.com/AWSServiceRoleForResourceExplorer"
      ]
    }
  ]
}
EOF

aws iam put-role-policy \
  --role-name DevOpsAgentRole-AgentSpace \
  --policy-name AllowCreateServiceLinkedRoles \
  --policy-document file://devops-agentspace-additional-policy.json

Step 2: Operator App 用 IAM ロールの作成

2-1. トラストポリシーの作成

cat > devops-operator-trust-policy.json << 'EOF'
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "aidevops.amazonaws.com"
      },
      "Action": ["sts:AssumeRole", "sts:TagSession"],
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "<MONITORING_ACCOUNT_ID>"
        },
        "ArnLike": {
          "aws:SourceArn": "arn:aws:aidevops:<REGION>:<MONITORING_ACCOUNT_ID>:agentspace/*"
        }
      }
    }
  ]
}
EOF

2-2. IAM ロールの作成

aws iam create-role \
  --role-name DevOpsAgentRole-WebappAdmin \
  --assume-role-policy-document file://devops-operator-trust-policy.json \
  --region <REGION>

# ロール ARN を確認・保存
aws iam get-role \
  --role-name DevOpsAgentRole-WebappAdmin \
  --query 'Role.Arn' --output text

2-3. マネージドポリシーのアタッチ

aws iam attach-role-policy \
  --role-name DevOpsAgentRole-WebappAdmin \
  --policy-arn arn:aws:iam::aws:policy/AIDevOpsOperatorAppAccessPolicy

CLI - Operator App ロール作成結果
cli-02-operator-role-created.png

Step 3: Agent Space の作成

aws devops-agent create-agent-space \
  --name "MyAgentSpace" \
  --description "AgentSpace for monitoring my application" \
  --region <REGION>

レスポンス例:

{
    "agentSpace": {
        "agentSpaceId": "agentspace-xxxxxxxxxx",
        "name": "MyAgentSpace",
        "status": "ACTIVE"
    }
}

重要: agentSpaceId の値を控えておきます。以降のコマンドで <AGENT_SPACE_ID> として使用します。

CLI - Agent Space 作成結果
cli-03-agentspace-created.png

Step 4: AWS アカウントの関連付け

aws devops-agent associate-service \
  --agent-space-id <AGENT_SPACE_ID> \
  --service-id aws \
  --configuration '{
    "aws": {
      "assumableRoleArn": "arn:aws:iam::<MONITORING_ACCOUNT_ID>:role/DevOpsAgentRole-AgentSpace",
      "accountId": "<MONITORING_ACCOUNT_ID>",
      "accountType": "monitor"
    }
  }' \
  --region <REGION>

Step 5: Operator App の有効化

aws devops-agent enable-operator-app \
  --agent-space-id <AGENT_SPACE_ID> \
  --auth-flow iam \
  --operator-app-role-arn "arn:aws:iam::<MONITORING_ACCOUNT_ID>:role/DevOpsAgentRole-WebappAdmin" \
  --region <REGION>

認証方式の選択肢:

方式 --auth-flow 追加パラメータ
IAM iam なし
IAM Identity Center idc --idc-instance-arn
外部 IdP idp --issuer-url, --idp-client-id, --idp-client-secret

CLI - Operator App 有効化結果
cli-04-operator-app-enabled.png

Step 6: セットアップの確認

# Agent Space 一覧
aws devops-agent list-agent-spaces --region <REGION>

# Agent Space 詳細
aws devops-agent get-agent-space \
  --agent-space-id <AGENT_SPACE_ID> \
  --region <REGION>

# 関連付け一覧
aws devops-agent list-associations \
  --agent-space-id <AGENT_SPACE_ID> \
  --region <REGION>

CLI - セットアップ確認結果
cli-05-verification.png


方法3: AWS CDK で導入

所要時間: 約30〜40分(CDK ブートストラップ済みの場合は約20分)

本ガイドは 2 パートで構成されます:

  • Part 1: 監視アカウントに Agent Space・IAM ロール・Operator App・AWS 関連付けをデプロイ
  • Part 2 (任意): クロスアカウント監視用にソースアカウントへ ServiceStack をデプロイ

前提条件の確認

node --version    # v18 以上であること
npm install -g aws-cdk
cdk --version

Part 1: Agent Space のデプロイ(監視アカウント)

Step 1: サンプルリポジトリのクローン

git clone https://github.com/aws-samples/sample-aws-devops-agent-cdk.git
cd sample-aws-devops-agent-cdk

Step 2: 依存関係のインストール

npm install

DK - npm install 結果
cdk-01-npm-install.png

Step 3: 監視アカウント ID の設定

lib/constants.ts を開いて監視アカウント ID を設定します:

export const MONITORING_ACCOUNT_ID = "<YOUR_MONITORING_ACCOUNT_ID>";

Step 4: CDK ブートストラップ(初回のみ)

cdk bootstrap aws://<MONITORING_ACCOUNT_ID>/<REGION> --profile monitoring

CDK - bootstrap 結果
cdk-02-bootstrap.png

Step 5: ビルド & デプロイ

npm run build
cdk deploy DevOpsAgentStack --profile monitoring

CDK - deploy 実行中
cdk-03-deploy-progress.png

Step 6: スタック出力の記録

デプロイ完了後、以下のような出力が表示されます(実行例):

  DevOpsAgentStack

Deployment time: 36.98s

Outputs:
DevOpsAgentStack.AgentSpaceArn      = arn:aws:aidevops:ap-northeast-1:745868332646:agentspace/9480452e-1607-4278-841b-1f8ab39f7fa5
DevOpsAgentStack.AgentSpaceRoleArn  = arn:aws:iam::745868332646:role/DevOpsAgentRole-AgentSpace
DevOpsAgentStack.AssociationId      = 01bc8ed5-89a3-4b6f-b16a-69c453a15ccc
DevOpsAgentStack.OperatorRoleArn    = arn:aws:iam::745868332646:role/DevOpsAgentRole-WebappAdmin
DevOpsAgentStack.PrimaryAccountId   = 745868332646

Total time: 55.52s

重要: Part 2 を実施する場合は AgentSpaceArn の値を保存しておきます。

CDK - deploy 完了・出力値
cdk-04-deploy-output.png

Step 7: デプロイの確認

aws devops-agent get-agent-space \
  --agent-space-id <AGENT_SPACE_ID> \
  --region <REGION>

コンソールでも確認できます。MyCDKAgentSpace が新たに追加されていることを確認してください。

CDK - Agent Space 一覧(CLI版・CDK版の両方が表示)
cdk-console-01-agentspace-list.png

CDK - MyCDKAgentSpace 詳細(「ウェブアプリを起動」ボタンが有効)
cdk-console-02-cdk-agentspace-detail.png


Part 2(任意): クロスアカウント監視の追加

Part 1 が完了してから実施してください。AgentSpaceArn の値が必要です。

Step 1: サービスアカウント ID の設定

lib/constants.ts を更新します:

export const SERVICE_ACCOUNT_ID = "<YOUR_SERVICE_ACCOUNT_ID>";

DevOpsAgentStack を再デプロイしてソース関連付けを追加します:

npm run build
cdk deploy DevOpsAgentStack --profile monitoring

Step 2: Agent Space ARN の設定

Part 1 Step 6 の出力から AgentSpaceArnlib/constants.ts に設定します:

export const AGENT_SPACE_ARN = "arn:aws:aidevops:<REGION>:<MONITORING_ACCOUNT_ID>:agentspace/<SPACE_ID>";

Step 3: サービスアカウントのブートストラップ(初回のみ)

cdk bootstrap aws://<SERVICE_ACCOUNT_ID>/<REGION> --profile service

Step 4: ServiceStack のデプロイ

npm run build
cdk deploy ServiceStack --profile service

デプロイされるリソース:

  • DevOpsAgentRole-SecondaryAccount — 監視アカウントの Agent Space を信頼するクロスアカウント IAM ロール
  • echo-service — 動作確認用 Lambda 関数

Step 5: Lambda 動作確認

aws lambda invoke \
  --function-name echo-service \
  --payload '{"test": "hello world"}' \
  --profile service \
  response.json

cat response.json
# 期待値: {"test": "hello world"}

CDK - ServiceStack デプロイ & Lambda 確認
cdk-05-servicestack-deploy.png


CDK で作成されるリソース一覧

リソース スタック 説明
DevOpsAgentRole-AgentSpace DevOpsAgentStack Agent が監視アカウントを調査するための IAM ロール
DevOpsAgentRole-WebappAdmin DevOpsAgentStack Operator App 用 IAM ロール
MyCDKAgentSpace DevOpsAgentStack Agent Space 本体
AWS Monitor Association DevOpsAgentStack 監視アカウントとの関連付け
AWS Source Association DevOpsAgentStack ソースアカウントとの関連付け(Part 2)
DevOpsAgentRole-SecondaryAccount ServiceStack クロスアカウント監視用 IAM ロール
echo-service ServiceStack 動作確認用 Lambda 関数

トラブルシューティング

エラー 原因 対処
CloudFormation resource type not found サポート外リージョン サポートリージョン(6種)で再実行
IAM role creation failed ロール作成権限不足 デプロイロールに IAM 権限を付与
Could not assume role in target account --profile の誤り 各スタックを対象アカウントのプロファイルで実行
IAM propagation delay IAM の反映遅延 数分待ってから再デプロイ

オプション: サードパーティ統合

Agent Space 作成後、以下のサービスを追加連携できます。コンソールまたは CLI の register-service / associate-service コマンドで設定します。

カテゴリ サービス 認証方式 CLI 事前登録
オブザーバビリティ Dynatrace, New Relic, Splunk OAuth / API Key / Bearer Token CLI のみで登録可
オブザーバビリティ Datadog, Grafana OAuth コンソールで OAuth 登録後、CLI で関連付け
CI/CD & コードリポジトリ GitHub, GitLab OAuth コンソールで OAuth 登録後、CLI で関連付け
チケット & チャット ServiceNow, PagerDuty, Slack OAuth CLI のみで登録可
クラウド(クロスアカウント) 追加 AWS アカウント, Azure IAM クロスアカウント CLI のみで登録可

オプション: クロスアカウント監視(CLI)

CDK の Part 2 と同等の構成を CLI で行う場合の手順です。

  1. 外部アカウントにクロスアカウント IAM ロールを作成し、AIDevOpsAgentAccessPolicy をアタッチ
  2. 信頼ポリシーで aidevops.amazonaws.com からの AssumeRole を許可し、aws:SourceArn を特定の Agent Space ARN に制限
  3. 監視アカウントに戻り、associate-serviceaccountType: "source" として関連付け
aws devops-agent associate-service \
  --agent-space-id <AGENT_SPACE_ID> \
  --service-id aws \
  --configuration '{
    "sourceAws": {
      "accountId": "<EXTERNAL_ACCOUNT_ID>",
      "accountType": "source",
      "assumableRoleArn": "arn:aws:iam::<EXTERNAL_ACCOUNT_ID>:role/DevOpsAgentCrossAccountRole"
    }
  }' \
  --region <REGION>

クリーンアップ

⚠️ 警告: Agent Space の削除は不可逆です。すべての関連付け・設定・調査データが永久に削除されます。

CDK の場合

# ServiceStack がある場合は先に削除
cdk destroy ServiceStack --profile service

# 監視アカウントのスタックを削除
cdk destroy DevOpsAgentStack --profile monitoring

CLI の場合

aws devops-agent delete-agent-space \
  --agent-space-id <AGENT_SPACE_ID> \
  --region <REGION>

セキュリティ考慮事項

  • IAM ロールのトラストポリシーは aidevops.amazonaws.com サービスプリンシパルのみ AssumeRole を許可
  • aws:SourceAccountaws:SourceArn 条件による混乱した代理攻撃(Confused Deputy)を防止
  • すべてのポリシーは最小権限の原則に基づいて設計。組織のセキュリティ要件に応じてカスタマイズ可能
  • 本番環境では IAM Identity Center 認証の使用を推奨

次のステップ

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?