AWS 策略声明:未知错误:发生意外错误 - 策略中的主体无效

问题描述 投票:0回答:1

在 AWS S3 中,我有

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Statement2024",
            "Principal": {
                "AWS": "arn:aws:lambda:eu-central-1:053297098999:function:statixxdata"
            },
            "Effect": "Allow",
            "Action": [
                "s3:*"
            ],
            "Resource": [
                "arn:aws:s3:::ixxxx2-statixx-data"
            ]
        }
    ]
}

(由于安全原因,某些值发生了变化)

我发现错误:未知错误:发生意外错误。保单中的本金无效。怎么解决?

amazon-web-services amazon-s3 amazon-iam aws-iam-policy
1个回答
0
投票

您的策略似乎正在尝试授予 AWS Lambda 函数使用该存储桶的权限。这是不可能的。

相反,你应该:

  • IAM 角色分配给 AWS Lambda 函数
  • 更改存储桶策略以向IAM角色(而不是Lambda函数本身)授予权限

但是,有一个更好的方法

  • IAM 角色分配给 AWS Lambda 函数
  • 将 IAM 策略附加到 IAM 角色并授予其使用存储桶的权限而不使用存储桶策略

向特定 IAM 用户或 IAM 角色分配权限时,最好在 IAM 实体上授予权限,而不是使用存储桶策略。存储桶策略通常仅在授予公共访问或跨账户访问时使用。

此外,您可能希望像这样向存储桶授予权限:

            "Resource": [
                "arn:aws:s3:::ixxxx2-statixx-data",
                "arn:aws:s3:::ixxxx2-statixx-data/*"
            ]

这是因为某些 API 调用在存储桶上工作,而其他 API 调用则在存储桶内内的对象上工作。

© www.soinside.com 2019 - 2024. All rights reserved.