为什么 AWS CloudWatch 加密日志组会破坏会话管理器?

Why does AWS CloudWatch encrypted log groups breaks session manager?

最近附加了一个来自 AWS KMS 的密钥来加密 AWS Systems Manager Session Manager 的 CloudWatch 日志组。现在我无法连接到任何会话。

这是什么错误以及如何修复?

您的会话已因以下原因终止:------------错误-------- 启动握手时遇到错误。 Fetching data key failed: Unable to retrieve data key, Error when decrypting data key AccessDeniedException: 密文引用了一个不存在的客户主密钥,不存在于该区域,或者你没有权限访问。状态码:400,请求id:

密钥确实存在并且在附加到日志组时工作正常。在尝试加密它们之前,会话管理器也运行良好。我需要在某处添加到策略中的额外权限吗?

根据评论。

此问题是由使用的实例角色中的不正确的权限引起的。

将角色中的策略从 AmazonSSMManagedInstanceCore 更改为 AmazonEC2RoleforSSM 解决了问题

需要修改权限

Select来自您正在使用的服务的权限设置的角色 您需要添加 policy.

请在政策中添加以下信息。

{
     "Version": "2012-10-17",
     "Statement": [
         {
             "Effect": "Allow",
             "Action": "kms:Decrypt",
             "Resource": "*"
         }
     ]
}

============================================= ==========================

在我的例子中,上述错误是在执行 Lambda 函数时发生的。

我通过添加这样的策略解决了这个问题:

Here是AWS提供的解决方案,本质上是在你的instance profile中添加权限,在Cloudwatch上创建加密日志,当然你还需要添加权限去Decrypt the session,就像一些文章中提到的上面的答案。请注意,出于安全原因,您应该尽可能地确定权限范围。