对 AWS 账户 ID 保密

信息安全 账户安全 aws 亚马逊
2021-09-04 01:17:27

我的 AWS 账户 ID 必须保密吗?仅使用 AWS 账户 ID 可以完成任何事情吗?

AWS 文档

AWS 账户 ID 是一个 12 位数字,例如 123456789012,您可以使用它来构建 Amazon 资源名称 (ARN)。当您引用 IAM 用户或 Amazon Glacier 文件库等资源时,账户 ID 将您的资源与其他 AWS 账户中的资源区分开来。

2个回答

可以在需要时共享 AWS 账户 ID。

就像文档说的那样,任何人都可以使用您的 AWS 帐号来做的主要事情是构建 ARN。例如,如果我有一个拥有 AWS Lambda 函数的 AWS 账户,而另一个账户上的某个人(我已明确授予其权限)想要操纵它,他们将使用 ARN 中的帐号。

arn:aws:lambda:us-east-1:123456789012:function:ProcessKinesisRecords

同样,这完全受到您帐户上应用的权限的限制。即使我拥有完整的 ARN,除非您授予我的 AWS 账户访问权限,否则我将无法使用它做任何事情。

API 密钥是授予对事物进行远程控制的事物,并且是危险的。

知道 AWS 账户 ID 本身不会使您受到任何攻击,但它可以使攻击者更容易获得其他危害信息。

Rhino 安全实验室在此处的博客文章中通过错误配置的 IAM 角色展示了潜在的危害向量

AWS 账户 ID 唯一标识每个 AWS 账户,并且比您想象的更敏感。虽然泄露 ID 不会直接暴露帐户以进行破坏,但攻击者可以在其他攻击中利用此信息。应该做出合理的努力来保持 AWS 账户 ID 的私密性,但在实践中,它们经常会无意中暴露给公众。

[...]

这篇文章(以及我们发布的随附脚本)使用 AWS 账户 ID 来识别现有角色。作为这一概念的延伸,攻击者可以更进一步,假设配置错误的 IAM 角色来获得未经授权的访问。

这仅在用户允许来自 * 或来自范围太广的资源的角色假设的情况下才有效,但根据我的经验,IAM 权限很复杂并且很难很好地审计,并且很难检测到这样的攻击:

这种暴力破解技术和脚本将在您用于枚举的帐户中生成大量“iam:AssumeRole”CloudTrail 日志。在您成功承担配置错误的角色之前,您定位的任何帐户都不会在其 CloudTrail 日志中看到任何内容,这意味着目标帐户上的枚举完全无日志。

换句话说 - 它本质上不是风险,但它确实有意义地减少了您帐户的攻击面,以使 ID 远离公众视线。