> ## Documentation Index
> Fetch the complete documentation index at: https://docs.enclave.ai/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Enclave in these docs is the code and cloud security platform at enclave.ai. It is not Open Enclave, Intel SGX or other hardware enclaves, or enclave.gg.
> People use Enclave in the web app at https://app.enclave.ai or the desktop app. These docs describe no public Enclave API or CLI, so don't invent endpoints, commands, or config files.
> Connecting an integration needs a person to sign in and approve access in a browser. Tell the user the exact step to take instead of saying you completed it.

# AWS

> 使用只读 IAM 角色连接 AWS 账号，让 Enclave 可以梳理你的云并检查发现项是否可触达。

连接 AWS 账号，让 Enclave 可以梳理其资源和身份，并判断哪些发现项可以被触达。访问是只读的。

## Enclave 需要什么

一个名为 `EnclaveScanner`、具有**只读**权限的跨账号 IAM 角色。CloudFormation 模板会为你创建它。该角色的信任策略只允许 Enclave 的主体代入它，并且只能使用为你组织生成的外部 ID。

该角色的 `EnclaveScannerReadOnly` 策略允许对以下服务执行 `Describe`、`List` 和 `Get` 操作：

* **计算**：EC2、ECS、EKS、Lambda、Batch 和 Step Functions。
* **网络**：通过 EC2 访问的 VPC 资源、Elastic Load Balancing、Route 53、CloudFront 和 API Gateway。
* **数据**：RDS、DynamoDB、ElastiCache，以及 SQS 队列、SNS 主题、Kinesis 流和 MSK 集群的名称。
* **存储**：S3 存储桶配置、策略、ACL 和公共访问设置。不读取对象。
* **容器**：ECR 仓库。
* **身份**：IAM 角色、用户、组、实例配置文件及其策略。

不执行任何变更操作，也不访问元数据以外的数据。

## 开始之前

* 你需要拥有 Enclave 中的 **Owner** 或 **Admin** 角色。
* 在 AWS 中，你需要在要连接的账号中拥有创建 CloudFormation 堆栈**和 IAM 角色**的权限。

> [!WARNING]
>
> 该堆栈会创建一个 IAM 角色，因此 CloudFormation 会要求你确认它将创建 IAM 资源。如果你的 AWS 用户无法创建 IAM 角色，堆栈会失败。请点击 **Copy link**，将链接发送给有权限的人。

## 连接 AWS 账号

打开 **Settings → Integrations**，点击 **Amazon Web Services** 旁边的 **Connect**。

**1. 打开 CloudFormation**

点击 **Open CloudFormation**。AWS 会在 `us-east-1` 中打开 `EnclaveScanner` 堆栈的快速创建页面，并预先填好你组织的外部 ID 和 Enclave 的主体 ARN。检查堆栈后创建它。

如需让其他人运行，请点击 **Copy link** 并将链接发送给对方。

**2. 从 Outputs 复制 RoleArn**

堆栈完成后，打开 **CloudFormation → Stacks → EnclaveScanner → Outputs**。复制 **Key** 为 `RoleArn` 那一行的 **Value**。

**3. 验证角色**

将 ARN 粘贴到 **RoleArn output** 中，然后点击 **Validate role**。Enclave 会代入该角色，确认信任关系正常工作。成功后，账号即已连接，Enclave 会开始扫描它。

> [!TIP]
>
> 点击 **Finish later** 可保存进度。堆栈准备就绪后，在 **Settings → Integrations → Amazon Web Services** 中完成设置。

## 添加更多账号

你可以连接多个 AWS 账号，例如 `prod` 和 `staging`。点击 **Add account**，在另一个账号中启动 `EnclaveScanner` 堆栈，然后验证其 `RoleArn`。

每个已连接的账号都对整个组织可用。

## 管理连接

在 **Settings → Integrations → Amazon Web Services** 中，点击某个账号可查看其账号 ID、角色 ARN 和区域。

* **Re-validate** 会检查 Enclave 是否仍能代入该角色。
* **Delete** 会从连接中移除一个账号。
* **Disconnect AWS** 会移除整个连接。Enclave 将停止使用这些账号。

在 **CloudTrail notifications** 下，你可以选择连接一个 CloudTrail 跟踪。之后，当账号的资源发生变化时，Enclave 会刷新该账号的资产清单，而不必等待每日扫描。

如需从 AWS 撤销访问权限，请删除 `EnclaveScanner` 堆栈或该角色。Enclave 将无法再扫描该账号。

## Enclave 会做什么、不会做什么

* **会**：调用 `EnclaveScannerReadOnly` 策略中的只读操作。
* **不会**：变更任何内容、读取数据内容、持有长期凭证，或在你的账号内运行智能体。

Enclave 使用短期 STS 凭证代入该角色，其范围限定于你设置的角色和外部 ID。你可以随时在 AWS 账号中撤销该角色。

## 故障排除

* **AWS STS could not assume the role**：堆栈不存在，或其外部 ID 与此 Enclave 连接不匹配。请再次点击 **Open CloudFormation**。如果 `EnclaveScanner` 堆栈已被删除，请重新创建；如果它仍存在，请更新它。然后复制新的 `RoleArn` 并重新验证。
* **"That ARN is the Enclave principal"**：你粘贴的是 Enclave 的主体 ARN，而不是你的角色 ARN。请粘贴堆栈 **Outputs** 标签页中的 `RoleArn` 值。
* **资产没有出现在 Coverage 中**：Enclave 会在账号连接时扫描一次，之后每天扫描一次。如需立即扫描，请在 [Coverage](https://docs.enclave.ai/zh/onboarding/coverage.md) 中点击 **Analyze Environment**。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.