本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS DevOps 代理 CLI 入门指南
概述
使用 AWS DevOps Agent,您可以监控和管理您的 AWS 基础架构。本指南将引导您使用 AWS 命令行界面 (AWS CLI) 设置 AWS DevOps 代理。您可以创建 IAM 角色、设置代理空间并关联您的 AWS 账户。您还可以启用操作员应用程序,并可以选择连接第三方集成。本指南大约需要 20 分钟才能完成。
AWS DevOps 代理可在六个 AWS 地区使用:美国东部(弗吉尼亚北部)、美国西部(俄勒冈)、亚太地区(悉尼)、亚太地区(东京)、欧洲(法兰克福)和欧洲(爱尔兰)。有关支持的区域的更多信息,请参阅支持的区域:。
先决条件
开始之前,请确保您拥有:
AWS 已安装并配置 CLI 版本 2
对您的 AWS 监控账户进行身份验证
创建 AWS 身份和访问管理 (IAM) Access Management 角色和附加策略的权限
用作监控 AWS 账户的账户
熟悉 AWS CLI 和 JSON 语法
在本指南中,请使用您自己的占位符值替换以下占位符值:
<MONITORING_ACCOUNT_ID>— 您的监控(主要) AWS 账户的 12 位数账户 ID<EXTERNAL_ACCOUNT_ID>— 要监控的辅助 AWS 账户的 12 位数账户 ID(在步骤 4 中使用)<REGION>— 您的代理空间的 AWS 区域代码(例如,us-east-1或eu-central-1)<AGENT_SPACE_ID>—create-agent-space命令返回的代理空间标识符
IAM 角色设置
1. 创建 DevOps 代理空间角色
通过运行以下命令创建 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
创建并附加内联策略以允许创建资源管理器服务相关角色:
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
此托管策略向操作员应用程序授予访问代理空间功能的权限。这些功能包括调查、推荐、知识管理、聊天和 Su AWS pport 集成。该策略使用aws:PrincipalTag/AgentSpaceId条件限制对特定代理空间的访问权限。有关完整操作列表的更多信息,请参阅DevOps 代理 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 身份中心 (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 身份中心身份验证,请使用--auth-flow idc并提供--idc-instance-arn。对于外部身份提供商,请使用--auth-flow idp并提供--issuer-url--idp-client-id、和--idp-client-secret。有关更多信息,请参阅设置 IAM 身份中心身份验证和设置外部身份提供商 (IdP) 身份验证。
4. (可选)关联其他源账户
要使用 AWS DevOps 代理监控其他账户,请创建 IAM 跨账户角色。
在外部账户中创建跨账户角色
切换到外部账户并创建信任策略。MONITORING_ACCOUNT_ID是托管您在步骤 2 中设置的代理空间的主账户。此配置允许 AWS DevOps 代理服务代表监控帐户在辅助源帐户中扮演角色。
运行以下命令来创建信任策略:
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
附加内联策略以允许在外部账户中创建资源管理器服务相关角色:
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>服务类型:。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
首先,使用凭据注册 Dynatrace OAuth 服务:
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 服务。
地区:要US么是EU。
可选字段:applicationIds、entityGuids、alertPolicyIds
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
必须先通过 AWS DevOps 代理控制台使用 OAuth 流程注册 Datadog,然后才能通过 CLI 将其关联。有关更多信息,请参阅 正在连接 DataDog。
列出注册的服务:
aws devops-agent list-services \ --region <REGION>
保存<SERVICE_ID>服务类型:。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>
后续步骤
要连接其他集成,请参阅为 AWS DevOps 代理配置功能。
要了解代理技能和能力,请参阅DevOps 特工技能。
要了解操作员 Web 应用程序,请参阅什么是 DevOps 代理 Web 应用程序?。
注意
将
<AGENT_SPACE_ID>、<MONITORING_ACCOUNT_ID><EXTERNAL_ACCOUNT_ID>、<REGION>、等替换为实际值。有关受支持区域的列表,请参阅支持的区域:。