View a markdown version of this page

AWS DevOps Agent CLI 入門指南 - AWS DevOps 代理程式

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

AWS DevOps Agent CLI 入門指南

概觀

透過 AWS DevOps 代理程式,您可以監控和管理 AWS 基礎設施。本指南會逐步引導您使用 AWS 命令列界面 (AWS CLI) 來設定 up AWS DevOps 代理程式。您可以建立 IAM 角色、設定客服人員空間,以及建立 AWS 帳戶關聯。您也可以啟用 運算子應用程式,並選擇性地連接第三方整合。本指南大約需要 20 分鐘才能完成。

AWS DevOps 代理程式適用於六個 AWS 區域:美國東部 (維吉尼亞北部)、美國西部 (奧勒岡)、亞太區域 (雪梨)、亞太區域 (東京)、歐洲 (法蘭克福) 和歐洲 (愛爾蘭)。如需支援區域的詳細資訊,請參閱 支援的區域

先決條件

開始前,請確定您有下列項目:

  • AWS 已安裝和設定的 CLI 第 2 版

  • 對您的 AWS 監控帳戶進行身分驗證

  • 建立 AWS Identity and Access Management (IAM) 角色並連接政策的許可

  • 用作監控 AWS 帳戶的帳戶

  • 熟悉 AWS CLI 和 JSON 語法

在本指南中,將下列預留位置值取代為您自己的預留位置值:

  • <MONITORING_ACCOUNT_ID> — 監控 (主要) AWS 帳戶的 12 位數帳戶 ID

  • <EXTERNAL_ACCOUNT_ID> — 要監控的次要 AWS 帳戶的 12 位數帳戶 ID (用於步驟 4)

  • <REGION> — 代理程式空間的區域 AWS 代碼 (例如 us-east-1eu-central-1)

  • <AGENT_SPACE_ID>create-agent-space命令傳回的代理程式空間識別符

IAM 角色設定

1. 建立 DevOps Agent 空間角色

執行下列命令來建立 IAM 信任政策:

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

建立 IAM 角色:

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

執行下列命令來儲存角色 ARN:

aws iam get-role --role-name DevOpsAgentRole-AgentSpace --query 'Role.Arn' --output text

連接 AWS 受管政策:

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

建立並連接內嵌政策,以允許建立 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

2. 建立運算子應用程式 IAM 角色

執行下列命令來建立 IAM 信任政策:

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

建立 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

連接 AWS 受管運算子應用程式政策:

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

此受管政策授予 運算子應用程式存取代理程式空間功能的許可。這些功能包括調查、建議、知識管理、聊天和 AWS 支援整合。政策會使用 aws:PrincipalTag/AgentSpaceId條件來限制對特定代理程式空間的存取。如需動作完整清單的詳細資訊,請參閱 DevOps Agent IAM 許可

加入步驟

1. 建立客服人員空間

執行下列命令來建立代理程式空間:

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

或者,指定 --kms-key-arn使用客戶受管 AWS KMS 金鑰進行加密。您也可以使用 --tags 來新增資源標籤--locale,以及設定客服人員回應的語言。

agentSpaceId 從回應儲存 (位於 agentSpace.agentSpaceId)。

若要稍後列出您的代理程式空間,請執行下列命令:

aws devops-agent list-agent-spaces \ --region <REGION>

2. 關聯 AWS 您的帳戶

關聯 AWS 您的帳戶以開啟拓撲探索。將 accountType設定為下列其中一個值:

  • monitor — 代理程式空間存在的主要帳戶。此帳戶託管代理程式,並用於拓撲探索。

  • source — 代理程式監控的其他帳戶。當您在步驟 4 中關聯外部帳戶時,請使用此類型。

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>

3. 啟用 運算子應用程式

身分驗證流程可以使用 IAM、IAM Identity Center (IDC) 或外部身分提供者 (IdP)。執行下列命令,為您的代理程式空間啟用 運算子應用程式:

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>

對於 IAM Identity Center 身分驗證,請使用 --auth-flow idc並提供 --idc-instance-arn。對於外部身分提供者,請使用 --auth-flow idp並提供 --issuer-url--idp-client-id--idp-client-secret。如需詳細資訊,請參閱設定 IAM Identity Center 身分驗證設定外部身分提供者 (IdP) 身分驗證

4. (選用) 關聯其他來源帳戶

若要使用 AWS DevOps 代理程式監控其他帳戶,請建立 IAM 跨帳戶角色。

在外部帳戶中建立跨帳戶角色

切換到外部帳戶並建立信任政策。MONITORING_ACCOUNT_ID 是主帳戶,託管您在步驟 2 中設定的代理程式空間。此組態可讓 AWS DevOps Agent 服務代表監控帳戶擔任次要來源帳戶中的角色。

執行下列命令來建立信任政策:

cat > devops-cross-account-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>", "sts:ExternalId": "arn:aws:aidevops:<REGION>:<MONITORING_ACCOUNT_ID>:agentspace/<AGENT_SPACE_ID>" } } } ] } EOF

建立跨帳戶 IAM 角色:

aws iam create-role \ --role-name DevOpsAgentCrossAccountRole \ --assume-role-policy-document file://devops-cross-account-trust-policy.json

執行下列命令來儲存角色 ARN:

aws iam get-role --role-name DevOpsAgentCrossAccountRole --query 'Role.Arn' --output text

連接 AWS 受管政策:

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

連接內嵌政策,以允許在外部帳戶中建立 Resource Explorer 服務連結角色:

cat > devops-cross-account-additional-policy.json << 'EOF' { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCreateServiceLinkedRoles", "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole" ], "Resource": [ "arn:aws:iam::<EXTERNAL_ACCOUNT_ID>:role/aws-service-role/resource-explorer-2.amazonaws.com/AWSServiceRoleForResourceExplorer" ] } ] } EOF aws iam put-role-policy \ --role-name DevOpsAgentCrossAccountRole \ --policy-name AllowCreateServiceLinkedRoles \ --policy-document file://devops-cross-account-additional-policy.json

關聯外部帳戶

切換回您的監控帳戶,然後執行下列命令來建立外部帳戶的關聯:

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>

5. (選用) 關聯 GitHub

如需透過主控台註冊 GitHub 的說明,請參閱 連線至 CI/CD 管道

列出已註冊的服務:

aws devops-agent list-services \ --region <REGION>

儲存 <SERVICE_ID> for serviceType:github

在主控台中註冊 GitHub 之後,請執行下列命令來建立 GitHub 儲存庫的關聯:

aws devops-agent associate-service \ --agent-space-id <AGENT_SPACE_ID> \ --service-id <SERVICE_ID> \ --configuration '{ "github": { "repoName": "<GITHUB_REPO_NAME>", "repoId": "<GITHUB_REPO_ID>", "owner": "<GITHUB_OWNER>", "ownerType": "organization" } }' \ --region <REGION>

6. (選用) 註冊和關聯 ServiceNow

首先,使用 OAuth 登入資料註冊 ServiceNow 服務:

aws devops-agent register-service \ --service servicenow \ --service-details '{ "servicenow": { "instanceUrl": "<SERVICENOW_INSTANCE_URL>", "authorizationConfig": { "oAuthClientCredentials": { "clientName": "<SERVICENOW_CLIENT_NAME>", "clientId": "<SERVICENOW_CLIENT_ID>", "clientSecret": "<SERVICENOW_CLIENT_SECRET>" } } } }' \ --region <REGION>

儲存傳回的 <SERVICE_ID>,然後與 ServiceNow 建立關聯:

aws devops-agent associate-service \ --agent-space-id <AGENT_SPACE_ID> \ --service-id <SERVICE_ID> \ --configuration '{ "servicenow": { "instanceUrl": "<SERVICENOW_INSTANCE_URL>" } }' \ --region <REGION>

7. (選用) 註冊和關聯 Dynatrace

首先,使用 OAuth 登入資料註冊 Dynatrace 服務:

aws devops-agent register-service \ --service dynatrace \ --service-details '{ "dynatrace": { "accountUrn": "<DYNATRACE_ACCOUNT_URN>", "authorizationConfig": { "oAuthClientCredentials": { "clientName": "<DYNATRACE_CLIENT_NAME>", "clientId": "<DYNATRACE_CLIENT_ID>", "clientSecret": "<DYNATRACE_CLIENT_SECRET>" } } } }' \ --region <REGION>

儲存傳回的 <SERVICE_ID>,然後與 Dynatrace 建立關聯。資源是選用的。環境會指定要與哪個 Dynatrace 環境建立關聯。

aws devops-agent associate-service \ --agent-space-id <AGENT_SPACE_ID> \ --service-id <SERVICE_ID> \ --configuration '{ "dynatrace": { "envId": "<DYNATRACE_ENVIRONMENT_ID>", "resources": [ "<DYNATRACE_RESOURCE_1>", "<DYNATRACE_RESOURCE_2>" ] } }' \ --region <REGION>

回應包含用於整合的 Webhook 資訊。您可以使用此 Webhook 來觸發來自 Dynatrace 的調查。如需詳細資訊,請參閱連接 Dynatrace

8. (選用) 註冊和關聯 Splunk

首先,使用 BearerToken 登入資料註冊 Splunk 服務。

端點使用下列格式: https://<XXX>.api.scs.splunk.com/<XXX>/mcp/v1/

aws devops-agent register-service \ --service mcpserversplunk \ --service-details '{ "mcpserversplunk": { "name": "<SPLUNK_NAME>", "endpoint": "<SPLUNK_ENDPOINT>", "authorizationConfig": { "bearerToken": { "tokenName": "<SPLUNK_TOKEN_NAME>", "tokenValue": "<SPLUNK_TOKEN_VALUE>" } } } }' \ --region <REGION>

儲存傳回的 <SERVICE_ID>,然後與 Splunk 建立關聯:

aws devops-agent associate-service \ --agent-space-id <AGENT_SPACE_ID> \ --service-id <SERVICE_ID> \ --configuration '{ "mcpserversplunk": { "name": "<SPLUNK_NAME>", "endpoint": "<SPLUNK_ENDPOINT>" } }' \ --region <REGION>

回應包含用於整合的 Webhook 資訊。您可以使用此 Webhook 來觸發 Splunk 的調查。如需詳細資訊,請參閱連接 Splunk

9. (選用) 註冊和關聯新複本

首先,使用 API 金鑰登入資料註冊 New Relic 服務。

區域: USEU

選用欄位:applicationIdsentityGuidsalertPolicyIds

aws devops-agent register-service \ --service mcpservernewrelic \ --service-details '{ "mcpservernewrelic": { "authorizationConfig": { "apiKey": { "apiKey": "<YOUR_NEW_RELIC_API_KEY>", "accountId": "<YOUR_ACCOUNT_ID>", "region": "US", "applicationIds": ["<APP_ID_1>", "<APP_ID_2>"], "entityGuids": ["<ENTITY_GUID_1>"], "alertPolicyIds": ["<POLICY_ID_1>"] } } } }' \ --region <REGION>

儲存傳回的 <SERVICE_ID>,然後關聯新複本:

aws devops-agent associate-service \ --agent-space-id <AGENT_SPACE_ID> \ --service-id <SERVICE_ID> \ --configuration '{ "mcpservernewrelic": { "accountId": "<YOUR_ACCOUNT_ID>", "endpoint": "https://mcp.newrelic.com/mcp/" } }' \ --region <REGION>

回應包含用於整合的 Webhook 資訊。您可以使用此 Webhook 觸發來自 New Relic 的調查。如需詳細資訊,請參閱連接新複本

10. (選用) 註冊和關聯 Datadog

您必須先使用 OAuth 流程透過 AWS DevOps Agent 主控台註冊 Datadog,才能透過 CLI 建立關聯。如需詳細資訊,請參閱連接 DataDog

列出已註冊的服務:

aws devops-agent list-services \ --region <REGION>

儲存 <SERVICE_ID> for serviceType:mcpserverdatadog

然後建立 Datadog 的關聯:

aws devops-agent associate-service \ --agent-space-id <AGENT_SPACE_ID> \ --service-id <SERVICE_ID> \ --configuration '{ "mcpserverdatadog": { "name": "Datadog-MCP-Server", "endpoint": "<DATADOG_MCP_ENDPOINT>" } }' \ --region <REGION>

回應包含用於整合的 Webhook 資訊。您可以使用此 Webhook 來觸發 Datadog 的調查。如需詳細資訊,請參閱連接 DataDog

11. (選用) 刪除代理程式空間

刪除代理程式空間會移除該代理程式空間的所有關聯、組態和調查資料。此動作無法復原。

若要刪除代理程式空間,請執行下列命令:

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

驗證

若要驗證您的設定,請執行下列命令:

# List your agent spaces aws devops-agent list-agent-spaces \ --region <REGION> # Get details of a specific agent space aws devops-agent get-agent-space \ --agent-space-id <AGENT_SPACE_ID> \ --region <REGION> # List associations for an agent space aws devops-agent list-associations \ --agent-space-id <AGENT_SPACE_ID> \ --region <REGION>

後續步驟

備註

  • <AGENT_SPACE_ID><MONITORING_ACCOUNT_ID><REGION><EXTERNAL_ACCOUNT_ID>等取代為您的實際值。

  • 如需支援的區域的清單,請參閱 支援的區域