

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 删除代理空间
<a name="deleting-an-agent-space"></a>

本页介绍如何删除 AWS DevOps 代理空间和移除启用 AWS DevOps 代理时在您的 AWS 账户中创建的 IAM 资源。 AWS DevOps 代理不提供自动禁用或卸载操作。您可以按照本页上的步骤删除资源。

**重要**  
**删除座席空间会永久删除所有调查数据、聊天记录、座席日志、推荐和应用程序拓扑图。删除 IAM 角色会移除代理对您的 AWS 账户的访问权限以及用户对操作员 Web 应用程序的访问权限。这些操作无法撤消。

## 先决条件
<a name="prerequisites"></a>

开始之前，请确保您拥有：
+ Sign-in 作为 IAM 用户或 IAM 身份中心的用户访问 AWS 管理控制台。
+ 删除代理服务中代理空间的 AWS DevOps 权限（`aidevops:ListAgentSpaces`和`aidevops:DeleteAgentSpace`）。
+ 在您的 AWS 账户中管理 IAM 角色和策略的权限（`iam:ListRoles``iam:ListPolicies``iam:ListAttachedRolePolicies`、、`iam:DetachRolePolicy`、`iam:DeleteRole`、和`iam:DeletePolicy`）。

AWS DevOps 代理是一项区域服务。代理空间及其生成的数据存储在您启用代理的 AWS 区域中。您必须在您的账户拥有代理空间的每个地区执行代理空间删除程序。IAM 资源是全球性的，因此您只需将其删除一次。有关提供 AWS DevOps 代理服务的区域列表，请参阅[支持的区域：](about-aws-devops-agent-supported-regions.md)。

**重要**  
**必须按以下顺序删除资源。当代理空间仍引用 IAM 角色时，无法安全地将其删除。

下表列出了启用 AWS DevOps 代理时创建的资源。在完成程序时，请将其用作清单。


| AWS 服务 | 资源类型 | 资源名称 | 
| --- | --- | --- | 
| AWS DevOps 代理人 | 代理空间 | 你给代理空间起的名字（默认：DevOpsAgentSpace） | 
| AWS 身份和访问管理 (IAM) Access Management |  角色 | AgentSpace 角色（通常命名DevOpsAgentRole-AgentSpace-\*） | 
| AWS 身份和访问管理 (IAM) Access Management |  角色 | WebappAdmin 角色（通常命名DevOpsAgentRole-WebappAdmin-\*） | 
| AWS 身份和访问管理 (IAM) Access Management | Customer-managed 政策 | 与该 AgentSpace 角色关联的任何客户管理策略 | 

确切的角色和策略名称取决于您的入职路径。使用以下 AWS CLI 程序或在 IAM 控制台中按`DevOpsAgentRole-`前缀进行搜索以查找您账户中的实际名称。

**注意**  
**附加到 IAM 角色（`AIDevOpsAgentAccessPolicy`和`AIDevOpsOperatorAppAccessPolicy`）的两个 AWS 托管策略归属 AWS 且未被删除。您只能在删除角色时将其分离。

## 删除代理空间
<a name="delete-the-agent-space"></a>

删除代理空间会删除其服务关联、操作员应用程序配置以及所有调查数据、聊天记录、代理日志、推荐和应用程序拓扑图。

### 使用 AWS DevOps 代理控制台
<a name="using-the-aws-devops-agent-console"></a>

1. 打开 AWS DevOps 代理控制台，网址为[https://console.aws.amazon.com/aidevops/](https://console.aws.amazon.com/aidevops/)。

1. 将您的 AWS 区域更改为代理空间所在的区域。

1. 在导航窗格中，选择**代理空间**。

1. 从表格中选择要移除的代理空间。**代理空间详细信息**页面打开。

1. 在**操作**中，选择**删除代理空间**。

1. 在打开的对话框中，查看信息以确保其准确性，输入要确认的座席空间名称，然后选择**删除**。

### 使用 AWS CLI
<a name="using-the-aws-cli"></a>

**步骤 1：**列出您所在地区的代理空间以找到您的`agentSpaceId`. 保存响应中的值。例如，`REGION`替换为代理空间所在的区域`us-east-1`。

```
aws devops-agent list-agent-spaces --region REGION
```

**步骤 2：**删除代理空间。`AGENT_SPACE_ID`替换为步骤 1 中的值。

```
aws devops-agent delete-agent-space --agent-space-id AGENT_SPACE_ID --region REGION
```

### 验证代理空间是否已删除
<a name="verifying-that-the-agent-space-is-deleted"></a>

运行以下命令并确认响应中包含一个空列表。

```
aws devops-agent list-agent-spaces --region REGION
```

## 删除 IAM 资源
<a name="delete-iam-resources"></a>

这些过程将引导您完成如何移除启用 A AWS DevOps gent 时在您的 AWS 账户中创建的 IAM 角色和任何客户托管的 IAM 策略。由于角色和策略名称取决于您的入职路径，因此以下过程要么在 IAM 控制台中按前缀搜索它们，要么通过 AWS CLI 查找其全名。

**重要**  
**下次您通过相同的入职路径重新启用 AWS DevOps 代理时，将客户管理的政策留在您的账户中是最常见的失败原因。完成本节中的所有步骤，以免在稍后重新启用时出现问题。

### 正在删除 AWS DevOps 代理 IAM 角色（控制台）
<a name="deleting-the-aws-devops-agent-iam-roles-console"></a>

1. 使用 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 打开 IAM 控制台。

1. 在导航窗格中，选择**角色**。

1. 在表格中，搜索名称为的角色**DevOpsAgentRole**。返回两个角色，其名称为`DevOpsAgentRole-AgentSpace-<suffix>`和`DevOpsAgentRole-WebappAdmin-<suffix>`。

1. 对于表中的每个角色，选中该角色的复选框，选择**删除**，然后在确认对话框中输入要确认的角色名称并选择**删除**。

### 删除所有客户托管的 IAM 策略（控制台）
<a name="deleting-any-customer-managed-iam-policies-console"></a>

如果您的入职路径将客户管理的策略附加到该 AgentSpace 角色，请在删除该角色后删除该策略。

1. 使用 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 打开 IAM 控制台。

1. 在导航窗格中，选择**策略**。

1. 按**类型筛选：客户管理**，然后查找名称以开头的所有保单`AIDevOps`或您在入职期间使用的任何其他标识符。

1. 对于要删除的每个策略，请选中策略的复选框，选择 “**操作**”，然后从下拉菜单中选择 “**删除**”。在打开的对话框中，查看信息，输入要确认的策略名称，然后选择**删除**。

### 使用 AWS CLI
<a name="using-the-aws-cli"></a>

**步骤 1：**发现通过激活创建的角色名称。保存响应中的角色名称，以便在以下步骤中使用。

```
aws iam list-roles --query "Roles[?starts_with(RoleName, 'DevOpsAgentRole-AgentSpace')].RoleName" --output text
aws iam list-roles --query "Roles[?starts_with(RoleName, 'DevOpsAgentRole-WebappAdmin')].RoleName" --output text
```

**步骤 2：**列出附加到每个角色的策略。`ROLE_NAME`替换为步骤 1 中的每个角色名称。

```
aws iam list-attached-role-policies --role-name ROLE_NAME
```

在响应中，客户管理的政策 ARN 包含您的 12 位数 AWS 账户 ID（例如）。`arn:aws:iam::123456789012:policy/...` AWS 托管策略 ARN 包含文字`aws`（例如）。`arn:aws:iam::aws:policy/AIDevOpsAgentAccessPolicy`保存第 4 步的客户管理的策略 ARN。

**第 3 步：**从每个角色中分离所有策略，然后删除该角色。对上一步返回的每个策略 ARN 运行一次该`detach-role-policy`命令。`ROLE_NAME`替换为角色名称和每`POLICY_ARN`个 ARN。

```
aws iam detach-role-policy --role-name ROLE_NAME --policy-arn POLICY_ARN
aws iam delete-role --role-name ROLE_NAME
```

**步骤 4：**删除您在步骤 2 中保存的所有客户管理策略。替换`CUSTOMER_POLICY_ARN`为每个 ARN。

```
aws iam delete-policy --policy-arn CUSTOMER_POLICY_ARN
```

### 验证 IAM 资源是否已删除
<a name="verifying-that-the-iam-resources-are-removed"></a>

运行以下命令。第一次调用应返回空结果。第二次调用不应返回您拥有并已删除的任何政策。

```
aws iam list-roles --query "Roles[?starts_with(RoleName, 'DevOpsAgentRole-')].RoleName" --output text
aws iam list-policies --scope Local --query "Policies[?starts_with(PolicyName, 'AIDevOps')].PolicyName" --output text
```

## Re-enabling AWS DevOps 清理后的代理
<a name="re-enabling-aws-devops-agent-after-cleanup"></a>

如果您按照上述步骤删除了 AWS DevOps 代理资源，之后又想再次启用 AWS DevOps 代理，请参阅[开始使用 AWS DevOps 代理](getting-started-with-aws-devops-agent.md)。记住以下内容：
+ 如果您没有删除客户管理的 IAM 策略，则通过相同的入职路径进行的下一次启用尝试可能会失败，并显示角色已存在的错误。请先删除剩余的策略。
+ 删除代理空间后，该名称将保留一小段时间。如果您立即重新启用并使用相同的名称，则创建可能会延迟。

## 相关资源
<a name="related-resources"></a>
+ [什么是 DevOps 代理空间？](about-aws-devops-agent-what-are-devops-agent-spaces.md)
+ [DevOps 代理 IAM 权限](aws-devops-agent-security-devops-agent-iam-permissions.md)
+ [AWS DevOps 代理安全](aws-devops-agent-security.md)
+ [开始使用 AWS DevOps 代理](getting-started-with-aws-devops-agent.md)