此文档页面指定了 s3 存储桶子资源的权限,指出
s3:GetEncryptionConfiguration
和 s3:PutEncryptionConfiguration
是授予对 GET Bucket 加密操作的访问权限。 但是当我在策略中应用这些权限时,策略编辑器通知我这些操作无法识别。
此外,当我保存具有这些权限的策略并将该策略应用于 lambda 函数(或 IAM 用户)时,GET Bucket 加密操作操作失败。 从 python 中的 boto3 使用,例如:
An error occurred (AccessDenied) when calling the GetBucketEncryption operation: Access Denied
当应用所有 s3 权限或所有 Get 权限(
s3:*
或 s3:Get*
)时,操作成功。 但是,当我在策略编辑器中选中 s3 操作的每个复选框以显式包含每个权限时,操作仍然失败并拒绝访问。
这个动作的正确名称是什么?我已经简单地尝试了
GetBucketEncryption
,但仍然没有骰子。 显然有一些东西授予了操作权限,否则通配符操作将不起作用。
不起作用:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetEncryptionConfiguration"
],
"Resource": [
"arn:aws:s3:::*"
]
}
]
}
作品:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:Get*"
],
"Resource": [
"arn:aws:s3:::*"
]
}
]
}
问题现已解决,因为 s3:GetEncryptionConfiguration 无法被可视化编辑器识别,因为它是最近发布的。可视化编辑器并不总是具有 AWS 发布的最新操作。
为了将来的参考,您始终可以在服务授权参考中仔细检查服务所需的确切操作。大多数情况下,它与 API 操作是一对一的,但偶尔,API 操作的命名 IAM 操作略有不同或具有一些依赖性。例如 s3:ListObjectsV2 API 操作 需要 s3:ListBucket 权限。
aws.permissions.cloud 也是一个第三方参考,尝试将 API 操作映射到权限,反之亦然。请记住,它可能会显示较新服务的 API 操作所需的权限较少。
如果上述内容还不够好,您应该始终检查有关安全和 IAM 策略的服务文档,它应该已涵盖。如果不是,提供有关您的查询的文档反馈通常会导致其背后的技术作者进行编辑或回复。我不隶属于 AWS,但提供了几次反馈并收到了有用的回复。