翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
認証とセキュリティ
MCP エンドポイントと A2A エンドポイントの両方で 2 つの認証方法を使用できます。
アクセストークン (ベアラー) – 1 つのエージェントスペースにスコープされた 1 つのトークン。個別の使用のための最も簡単なセットアップ。
AWS SigV4 – AWS 認証情報ベースの認証。複数のエージェントスペースをサポートし、既存の AWS ID ガバナンスと統合します。 AWS 認証情報を使用してリクエストに署名するローカルプロキシである mcp-proxy-for-aws
によって自動的に処理されます。
アクセストークンを作成する
前提条件
アクセストークン機能は、エージェントスペースで有効にする必要があります。
アクセストークン (
aidevops:CreateAccessToken、、) を管理するにはaidevops:RevokeAccessToken、IAM アクセス許可が必要ですaidevops:RotateAccessToken。利用できるタイムゾーンの一覧については、「DevOps エージェント IAM アクセス許可」を参照してください。
アクセストークンを有効にする
AWS マネジメントコンソールにサインインし、 AWS DevOps エージェントコンソールを開きます。
エージェントスペースを選択します。
[設定] タブを選択します。
アクセストークンセクションで、有効化を選択します。
アクションを確認します。
トークンを作成する
エージェントスペースの DevOps エージェントウェブアプリを開き、ナビゲーションメニューから設定を選択し、アクセストークンを選択します。
[Generate token] を選択します。
トークンの名前を入力します。
スコープを選択します。
read– 調査、レコメンデーション、チャット、エージェントスペースリソースを表示します。operate– フルアクセス。にすべてが含まれread、メッセージの送信、チャットの作成、バックログタスクとレコメンデーションの管理を行います。
クライアントタイプを選択します。
human– IDE および CLI の使用 (Kiro、Claude Code、Cursor、およびその他のインタラクティブツール)。agent– 自律 A2A 統合とプログラムエージェント用。
有効期限 (1~60 日) を設定します。
トークン値をコピーし、AWS Secrets Manager などの安全で安全な場所に保存します。再度取得することはできません。
トークンを作成すると、ウェブアプリケーションにクライアントに直接コピーできる設定例が表示されます。
SigV4 認証を使用する
SigV4 認証は、アクセストークンの代わりに AWS 認証情報を使用します。Kiro power および Claude Code プラグインには、ローカル AWS 認証情報を使用してリクエストに署名するmcp-proxy-for-aws、 を介した組み込み SigV4 サポートが含まれています。
SigV4 を使用する場合
アクセストークンが設定されていないか失敗した場合 (期限切れ、無効) のフォールバックとして。
複数のエージェントスペースがあり、ツール呼び出し
agent_space_idごとに でルーティングする必要がある場合のプライマリ認証として。ユーザーの選択として – Claude Code で、セットアップスキルを実行してベアラートークンから SigV4 認証に切り替えます。
前提条件
AWS 環境で利用可能な 認証情報 (SSO、環境変数、または 認証情報ファイルを使用)。
認証情報には、 AWS DevOps エージェントアクションを呼び出すアクセス許可が必要です。必要なアクセス許可については、「DevOps エージェント IAM アクセス許可」を参照してください。
uvxインストール済み (プロキシは を介して実行されますuvx mcp-proxy-for-aws@latest)。
設定例
アクセストークンの代わりに SigV4 を使用するように MCP クライアントを設定するには、 を介してサーバーを実行しますmcp-proxy-for-aws。をエージェントスペースのリージョン ( などus-east-1) {region}に置き換えます。
{ "mcpServers": { "aws-devops-agent": { "command": "uvx", "timeout": 120000, "args": [ "mcp-proxy-for-aws@latest", "https://connect.aidevops.{region}.api.aws/mcp", "--service", "aidevops", "--region", "{region}" ] } } }
プロキシはローカル AWS 認証情報を使用して各リクエストに署名するため、アクセストークンは必要ありません。
Multi-Agent-Spaceルーティング
SigV4 モードでは、各ツール呼び出しagent_space_idを渡して、使用するエージェントスペースを指定します。これにより、1 つのクライアントから複数のエージェントスペースにルーティングできます。
セキュリティに関する考慮事項
トークンスコープ
最小権限を使用する: クライアントがメッセージを送信またはタスクを管理する必要がある
operate場合にのみ、読み取り専用の統合readに を選択します。トークンを定期的にローテーションします。トークンは、設定された期間 (最大 60 日) 後に期限切れになります。
環境変数またはシークレットマネージャーにトークンを保存します。ソースコードでトークンをハードコードしないでください。
人間によるレビューなしでエージェントのレスポンスを自動実行しないでください。
IP 許可リスト
アクセストークンを作成するときは、オプションで IP 許可リストを指定できます。設定すると、トークンは指定された IP アドレスまたは CIDR 範囲からのみ使用できます。他の IPsは、アクセス拒否エラーで拒否されます。
トークンのローテーションと取り消し
ローテーション – トークンをローテーションして、トークンの名前、スコープ、および IP 許可リストを保持しながら、新しいトークン値を生成します。古いトークンはすぐに無効になります。新しいトークン値でクライアント設定を更新します。ローテーションは新しいチャット履歴も開始します。次のセクションを参照してください。
取り消し – トークンが侵害された場合は、すぐに取り消します。取り消されたトークンは使用できず、復元することもできません。
チャット履歴とトークンのローテーション
各トークンには独自のチャット履歴があります。トークンをローテーションすると、 AWS DevOps Agent は新しいトークン値を新しい ID として扱います。前のトークンで作成したチャットは、リモートサーバーに表示されなくなります。
侵害されたトークンへの対応
トークンが侵害された疑いがある場合は、次の手順に従います。
すべてのトークンアクセスをブロックする – AWS DevOps エージェントコンソールで、エージェントスペースを開き、設定タブを選択し、アクセストークンセクションで無効化を選択します。これにより、エージェントスペースへのすべてのトークンベースのアクセスが直ちにブロックされます。
侵害されたトークンの取り消し – ウェブアプリで、設定 > アクセストークンに移動し、侵害されたトークンを選択し、取り消しを選択します。アクセストークンが無効になっている場合でも、トークンを取り消すことができます。
アクセストークンの再有効化 – 侵害されたトークンを取り消した後、トークンベースのアクセスがまだ必要な場合は、設定タブからアクセストークンを再有効化します。
プログラムによるトークンの取り消し
を使用してプログラムでトークンを取り消すこともできますawscurl。次のコマンドは SigV4 認証を使用します。リージョン (us-east-1) を、エージェントスペースが作成されたリージョンに置き換えます。
ステップ 1: エージェントスペースを一覧表示する
aws aidevops list-agent-spaces --region us-east-1
ステップ 2: エージェントスペースのアクセストークンを一覧表示する
awscurl --service aidevops --region us-east-1 \ -H "Accept: application/json" \ "https://cp.aidevops.us-east-1.api.aws/v1/agentspaces/{agentSpaceId}/access-tokens"
ステップ 3: トークンを取り消す
awscurl --service aidevops --region us-east-1 -X POST \ -H "Accept: application/json" \ "https://cp.aidevops.us-east-1.api.aws/v1/agentspaces/{agentSpaceId}/access-tokens/{accessTokenId}/revoke"
{agentSpaceId} と を前のレスポンスの値{accessTokenId}に置き換えます。
トレーサビリティ
AWS DevOps Agent は AWS CloudTrail にリモートサーバーアクティビティを記録します。これらのレコードを使用して、リモートサーバーを呼び出したユーザーと、その結果エージェントが何をしたかをトレースします。 AWS DevOps エージェントは、エージェントスペースをホストする AWS アカウントに CloudTrail イベントを配信します。
アクセストークン認証イベント
AWS DevOps エージェントが MCP または A2A エンドポイントのアクセストークンを認証するたびに、CloudTrail にAuthenticateAccessTokenイベントを発行します。 AWS DevOps エージェントは、成功した認証と失敗した認証の両方を記録します。これらのレコードを使用して、正当な使用を監査し、拒否された試行を検出します。例としては、期限切れまたは取り消されたトークン、IP 許可リストによってブロックされたリクエストなどがあります。
イベントには次の特性があります。
イベントソース –
aidevops.amazonaws.comイベント名 –
AuthenticateAccessToken管理イベント – イベントは管理イベントであり、読み取り専用ではないため、読み取り専用イベントを除外しても表示され続けます。
イベントには、次のキーフィールドが含まれます。
| フィールド | 説明 |
|---|---|
userIdentity.principalId |
提示されたアクセストークンの ID。 |
userName |
アクセストークンの名前。 |
requestParameters.agentSpaceId |
トークンが認証されるエージェントスペース。 |
requestParameters.accessTokenId |
アクセストークン ID。 |
requestParameters.tokenName |
アクセストークン名。 |
requestParameters.protocol |
使用されたMCPプロトコル — または A2A。 |
responseElements.AuthenticateAccessToken |
結果 —Success または Failure。 |
resources |
トークンが認証するエージェントスペースリソース (AWS::AIDevOps::AgentSpace)。ARN によって識別されます。 |
additionalEventData.roleSessionName |
認証を成功させるには、ダウンストリームロールセッション名を の形式で指定しますtoken_{spaceId}_{timestamp}_{tokenName}。これを使用して、認証をエージェントが実行するアクションと関連付けます。 |
sourceIPAddress |
クライアントの IP アドレス。 |
userAgent |
利用可能な場合、クライアントの User-Agent 文字列。 |
errorCode, errorMessage |
失敗した認証の場合、認証が拒否された理由。 |
注記
AWS DevOps Agent は raw ベアラートークン値を記録しません。イベントには、不透明なアクセストークン ID のみが表示されます。
ダウンストリームアクションイベント
アクセストークンを使用すると、 AWS DevOps Agent はユーザーに代わってアクションを実行するロールを引き受けます。 AWS DevOps Agent は、トークンと発信者を識別するセッションタグを使用して CloudTrail でこのAssumeRole呼び出しを記録します。
AgentSpaceId– エージェントスペースの識別子。UserId– トークン作成者の ID。AccessTokenId– トークンの一意の識別子。TokenName– 使用されるアクセストークンの名前。ClientType– 使用されるプロトコル (MCP、A2A)。SourceIp– クライアントの IP アドレス。UserAgent– Client User-Agent 文字列 (利用可能な場合)。
エージェントがユーザーに代わって実行する各アクションには、CloudTrail がログに記録する対応するダウンストリーム AWS API コールがあります。ロールセッション名は 形式を使用しますtoken_{spaceId}_{timestamp}_{tokenName}。このセッション名は、AuthenticateAccessTokenイベントの と一致しroleSessionNameます。これを使用して、認証からそれに従った特定のアクションをトレースします。
SigV4 呼び出し
アクセストークンの代わりに AWS SigV4 認証を使用する呼び出しでは、AuthenticateAccessTokenイベントは生成されません。 AWS DevOps Agent は、SigV4 リクエストを AWS Identity and Access Management (IAM) ID に属性付けします。エージェントがトリガーするダウンストリーム AWS API コールを通じて実行するアクションを追跡できます。
VPC エンドポイントポリシーの制限
リモートサーバーエンドポイントは VPC エンドポイントポリシーをサポートしていません。アクセストークンまたは SigV4 認証のいずれかを使用した呼び出しは、VPC エンドポイントポリシーでは制限できません。
アクセストークンの無効化
アクセストークン機能はデフォルトでオフになっています。有効にした後で無効にするには:
エージェントスペースの設定タブを開きます。
Access tokens セクションで、Disable を選択します。
を無効にすると、すべてのトークンベースのアクセスがすぐにブロックされます。既存のトークンは削除されませんが、機能を再度有効にするまで使用できません。
組織内のユーザーがアクセストークンを有効にできないようにするには、アクセストークン API アクションと UpdateAgentSpaceアクション (アクセストークンの切り替えを制御する) を拒否するサービスコントロールポリシー (SCP) を作成します。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAccessTokenOperations", "Effect": "Deny", "Action": [ "aidevops:UpdateAgentSpace", "aidevops:CreateAccessToken", "aidevops:GetAccessToken", "aidevops:ListAccessTokens", "aidevops:RotateAccessToken", "aidevops:RevokeAccessToken" ], "Resource": "*" } ] }
トラブルシューティング
| 症状 | 原因 | 解決策 |
|---|---|---|
| HTTP 401 未承認 | トークンが無効または期限切れです。 | ウェブアプリで新しいトークンを作成するか、既存のトークンをローテーションします。 |
| HTTP 400 「A2A-Version ヘッダーが必要」 | プロトコルバージョンヘッダーがありません。A2A v1.0 のみがサポートされています。 | A2A リクエストに A2A-Version: 1.0ヘッダーを追加します。 |
| HTTP 400 「エージェントスペースが認証情報から解決されない」 | A2A + SigV4 リクエストには X-Agent-Space-Idヘッダーは含まれません。 |
リクエストX-Agent-Space-Id: <agentSpaceId>に を追加します。 |
| リクエストタイムアウト | 初期応答には 5~30 秒かかります。調査には 5~8 分かかります。 | クライアントタイムアウトを少なくとも 120 秒に設定します。 |
| 接続が拒否されました | エンドポイント URL またはリージョンが正しくありません。 | URL 形式を確認します。 https://connect.aidevops.{region}.api.aws |