为什么 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,就像一些文章中提到的上面的答案。请注意,出于安全原因,您应该尽可能地确定权限范围。
最近附加了一个来自 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,就像一些文章中提到的上面的答案。请注意,出于安全原因,您应该尽可能地确定权限范围。