【问题标题】:Why does AWS CloudWatch encrypted log groups breaks session manager?为什么 AWS CloudWatch 加密日志组会中断会话管理器?
【发布时间】:2020-10-21 09:38:56
【问题描述】:

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

这是什么错误以及如何解决?

由于以下原因,您的会话已终止: ----------ERROR------- 启动握手时遇到错误。 Fetching data key failed: Unable to retrieve data key, Error when decrypting data key AccessDeniedException: The ciphertext referenced a customer master key does not exist,在本区域不存在,或不允许访问。状态码:400,请求ID:

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

【问题讨论】:

  • 您的 KMS 是否具有允许会话管理器访问的关键策略?
  • 不这么认为 - 现在试试,谢谢。不完全确定密钥策略中的所有要求,但我会尝试添加 ssm:StartSession 和 ssm:TerminateSession 看看会发生什么。
  • 不是ssm:StartSession,而是会话管理器的kms cmk加密和解密权限。
  • 想通了。我必须将 AmazonEC2RoleforSSM 附加到 IAM 实例配置文件。我读到使用 AmazonSSMManagedInstanceCore 更好,但这对于 SSM 来说权限不够,所以我将其更改为 AmazonEC2RoleforSSM,它现在可以工作了。我担心使用 AmazonEC2RoleforSSM 可能会有一些安全问题......
  • 好的,继续。

标签: amazon-web-services amazon-cloudwatchlogs amazon-systems-manager aws-session-manager


【解决方案1】:

基于 cmets。

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

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

【讨论】:

【解决方案2】:

需要修改权限。

从您正在使用的服务的权限设置中选择一个角色 您需要添加政策

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

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

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

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

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

【讨论】:

  • 这授予在 AWS 中任何位置解密 any 数据的权限,这可能不是最安全的想法...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-15
  • 1970-01-01
  • 2019-05-11
  • 1970-01-01
  • 1970-01-01
  • 2020-11-02
相关资源
最近更新 更多