AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1084652
Accepted
Gomibushi
Gomibushi
Asked: 2021-11-27 03:28:32 +0800 CST2021-11-27 03:28:32 +0800 CST 2021-11-27 03:28:32 +0800 CST

适用于 AWS 登陆区(控制塔)的良好 KMS 密钥策略看起来如何?

  • 772

我最近通过手动将 KMS 密钥添加到控制塔 SNS 主题来“破坏”控制塔。当控制塔对堆栈进行检查或升级时,这并不能很好地工作。我不得不移除密钥并轻推一些堆栈以使其处于健康状态,但现在 SNS 主题未加密,Security Hub 不满意。

以前我为所有组织帐户(每个帐户一个)部署了一个用于 SNS 主题的 KMS 密钥,但我现在明白,如果我给它一个用于创建或修改登陆区的密钥,Control Tower 可以为我执行此操作。据我了解,此密钥必须是管理账户中的单个密钥,并且具有至少允许 Config 和 CloudTrail 服务的策略,但也可用于我的所有账户。

如果有人可以请为我提供一个外观模板,我将不胜感激。谢谢,麻烦您了。:)

amazon-web-services
  • 2 2 个回答
  • 905 Views

2 个回答

  • Voted
  1. Best Answer
    Gomibushi
    2021-11-30T03:50:53+08:002021-11-30T03:50:53+08:00

    我不能放手,所以我去测试并发现以下可能是一个很好的解决方案。

    我学到的关键点:

    • 看起来服务只需要“kms:GenerateDataKey”权限。
    • 如果需要 *-wildcard,请使用“StringLike”条件,而不是“StringEquals”

    该文档非常有用。我没有成功制定使用“aws:SourceArn”或“aws:SourceAccount”的策略,但我确实成功使用了“kms:EncryptionContext:context”。

    这是我的政策,帐号已编辑:

    {
        "Version": "2012-10-17",
        "Id": "SNS-KMS-Key",
        "Statement": [
            {
                "Sid": "Key admin in mgmt account",
                "Effect": "Allow",
                "Principal": {
                    "AWS": "arn:aws:iam::112211221122:root"
                },
                "Action": "kms:*",
                "Resource": "*"
            },
            {
                "Sid": "AWS-services permissions in all accounts",
                "Effect": "Allow",
                "Principal": {
                    "Service": [
                        "config.amazonaws.com",
                        "cloudtrail.amazonaws.com"
                    ]
                },
                "Action": [
                    "kms:GenerateDataKey",
                    "kms:Encrypt",
                    "kms:Decrypt",
                    "kms:DescribeKey",
                    "kms:ReEncrypt*"
                ],
                "Resource": "*"
            }
        ]
    }
    

    我希望有人觉得这很有用。请注意,我怀疑您可以并且也许应该使用条件来限制最后一条语句。没有让我自己工作。

    • 1
  2. Chris
    2022-02-10T12:57:18+08:002022-02-10T12:57:18+08:00

    我能够通过上述答案的组合来实现这一点,并允许以下 AWS 服务角色使用密钥:

    "arn:aws:iam::112211221122:role/service-role/AWSControlTowerConfigAggregatorRoleForOrganizations",
    "arn:aws:iam::112211221122:role/service-role/AWSControlTowerStackSetRole",
    "arn:aws:iam::112211221122:role/service-role/AWSControlTowerAdmin",
    "arn:aws:iam::112211221122:role/service-role/AWSControlTowerCloudTrailRole"
    

    我不知道是否需要所有这些,我只是猜测。

    • 0

相关问题

  • 如何在 Amazon Linux 服务器上升级到 Java 1.8?

  • 了解 Amazon AWS 使用数据

  • 亚马逊提供的负载均衡服务体验如何?

  • ELB 中现有节点的 AWS 自动缩放问题

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve