跳转到主要内容
连接 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 角色的权限。
该堆栈会创建一个 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 会开始扫描它。
点击 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 中点击 Analyze Environment。