【问题标题】:KMS permissions for encrypted CloudWatch LogGroups with AWS Systems Session Manager使用 AWS Systems Session Manager 加密 CloudWatch LogGroup 的 KMS 权限
【发布时间】:2020-10-21 11:50:15
【问题描述】:

我已设置 CMK(自定义托管密钥)以使用 AWS 系统会话管理器加密日志组:

  1. 首先,在 KMS 控制台中添加“关键管理员”和“关键用户/角色”的权限。

  2. 接下来,CMK 在 AWS Systems Manager Session Manager Preferences 中附加到 LogGroup,如下图所示:

错误:

指定的 KMS 密钥不存在或不允许与 LogGroup 'arn:aws:logs:my_region:my_account_id:log-group:/SSM' 一起使用

密钥必须存在,因为它用于加密会话,只是没有正确解密 LogGroup,但它链接到 LogGroup 并且用户具有权限。什么给了?

【问题讨论】:

    标签: amazon-web-services aws-kms aws-ssm


    【解决方案1】:

    我试图复制您的问题

    我的会话管理器设置

    CloudWatch 日志组已使用 CLI加密

    {
        "logGroups": [
            {
                "logGroupName": "SSM",
                "creationTime": 1593579430258,
                "metricFilterCount": 0,
                "arn": "arn:aws:logs:us-east-1:xxxxx:log-group:SSM:*",
                "storedBytes": 0,
                "kmsKeyId": "arn:aws:kms:us-east-1:xxxxxxxxx:key/xxxx-9500-xxxxx"
            }
        ]
    }
    
    

    启动会话管理器后,我可以确认它已加密:

    基于此验证,要使其正常工作,唯一需要做的就是设置 KMS 密钥策略。我在我的 KMS 中添加了以下内容(SSMRole 是实例角色,其他条目应该是不言自明的):

    {
        "Effect": "Allow",
        "Principal": {
            "Service": "logs.us-east-1.amazonaws.com"
        },
        "Action": [
            "kms:Encrypt*",
            "kms:Decrypt*",
            "kms:ReEncrypt*",
            "kms:GenerateDataKey*",
            "kms:Describe*"
        ],
        "Resource": "*",
        "Condition": {
            "ArnLike": {
                "kms:EncryptionContext:aws:logs:arn": "arn:aws:logs:us-east-1:xxxxx:log-group:SSM"
            }
        }
    },    
    {
        "Effect": "Allow",
        "Principal": {
            "Service": "ssm.amazonaws.com"
        },
        "Action": [
            "kms:Encrypt*",
            "kms:Decrypt*",
            "kms:ReEncrypt*",
            "kms:GenerateDataKey*",
            "kms:Describe*"
        ],
        "Resource": "*"            
    }, 
    {
        "Effect": "Allow",    
        "Action": [
            "kms:Encrypt*",
            "kms:Decrypt*",
            "kms:ReEncrypt*",
            "kms:GenerateDataKey*",
            "kms:Describe*"
        ],
        "Resource": "*",
        "Principal": {
            "AWS": "arn:aws:iam::xxxxx:role/SSMRole"
        }      
    }
    

    【讨论】:

    • 非常成功,马辛。感谢详尽的解释,帮助我更好地理解政策的使用。
    • @ForeverLearningAndCoding 没问题。遵循“最低特权”标准可能会使这些政策变得更好,但这是未来修改的良好开端。
    猜你喜欢
    • 2020-07-30
    • 2020-05-06
    • 2019-02-15
    • 2021-10-29
    • 2020-06-30
    • 2023-01-27
    • 2020-01-02
    • 2019-02-17
    • 1970-01-01
    相关资源
    最近更新 更多