AWS Org 中的 Cloudtrail 显式拒绝失败

Cloudtrail explicit deny in AWS Org fails

IAM 中除 root 帐户外只有 5 个用户。此策略有一个明确的拒绝并附加在根级别(附照片),但它不起作用。

“不起作用”是指 - 在 AWS 控制台中,我单击“停止日志记录”,它停止了日志记录。此外,我 运行 在 CLI 中停止登录的命令也停止了日志记录 - 所以这个显式拒绝在某处失败了。

请注意,此测试是在 IAM 成员帐户而非根帐户上完成的。我只使用 root 帐户来设置 SCP。 IAM 会员账户是超级用户,几乎完成了 AWS 上的所有“管理工作”。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "DenycloudtrailStopLogging",
            "Effect": "Deny",
            "Action": [
                "cloudtrail:StopLogging"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}

IAM 用户是否也需要链接到其他地方?它们不在 OU 中,但它们仍然是 IAM 中的帐户,所以我认为它们都继承了 root 权限(上图)

还认为 明确拒绝胜过所有其他政策中的所有其他决定,那么有什么原因导致此政策不起作用?这些是仅有的 2 个服务控制策略(完全访问和拒绝 Cloudtrail 停止记录)。

除了创建策略并将其附加到根之外是否还有其他因素 - 因为我认为这是我们必须做的全部?可以放在其他地方的某种服务或角色豁免?

服务控制策略 (SCP) 不适用于付款人(a.k.a.master)账户。它们仅适用于本组织的会员账户。这意味着如果您想拒绝付款人账户中的特定操作,您将不得不以不同的方式进行。

原因是使用 SCP,您还可以限制目标帐户的根用户。如果它适用于付款人帐户,您可以有效地将自己锁定在整个组织及其所有帐户之外。

需要注意的一件事:付款人账户中不应有太多 activity,用户尽可能少,并且没有实际工作量 运行ning。它的唯一目的应该是管理组织(成员账户、账单、SCP 和 CloudFormation StackSets),并且这应该尽可能自动化。超出绝对必要手动访问付款人帐户,或 运行 给 运行 增加额外的工作负载,会带来很大的安全风险,因为如果付款人帐户遭到破坏,可能会给您的整个组织带来麻烦。

有关安全设置,请查看 AWS Control Tower or if that isn’t available in your region yet, the AWS Landing Zone Solution

将上面的代码放入 IAM 中的新“权限边界策略”中,而不是 SCP。

IAM 中的权限边界策略限制 IAM 用户,而 AWS Organizations 中的 SCP 专门限制 AWS Organization 帐户。