amazon-web-services - AWS S3 错误“策略具有无效资源”
问题描述
我正在将 S3 存储桶从源存储桶移动到目标存储桶。以下是做这项工作的参考。 https://aws.amazon.com/premiumsupport/knowledge-center/copy-s3-objects-account/?nc1=h_ls
但我在制定政策时遇到了错误。错误信息是Policy has invalid resource
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:ListBucket",
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::<SOURCE_BUCKET_NAME>",
"arn:aws:s3:::<SOURCE_BUCKET_NAME>/*"
]
},
{
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:ListBucket",
"s3:PutObject",
"s3:PutObjectAcl"
],
"Resource": [
"arn:aws:s3:::<DESTINATION_BUCKET_NAME>",
"arn:aws:s3:::<DESTINATION_BUCKET_NAME>/*"
]
}
]
}
我改变了测试政策,它奏效了。区别如下。
arn:aws:s3:::<SOURCE_BUCKET_NAME>
>arn:aws:s3:::<DESTINATION_BUCKET_NAME>
我不知道为什么如果我填写我的 SOURCE_BUCKET_NAME 它不起作用。
我发誓源存储桶名称没有错。你可能会认为这个问题像个傻瓜,我也认为这没什么,但我找不到任何意义。如果你知道答案,请帮帮我。谢谢阅读 :)
+ 被添加
我附加到源存储桶的存储桶策略。替换的委托人是目标(目标)账户中 IAM 身份的 ARN。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DelegateS3Access",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::xxxxxxxxxxxx:user/ws.kim"
},
"Action": [
"s3:ListBucket",
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::<SOURCE_BUCKET_NAME>/*",
"arn:aws:s3:::<SOURCE_BUCKET_NAME>"
]
}
]
}
解决方案
原因是这是无效的存储桶策略。相反,它应该是您创建并附加到 IAM 角色或用户的托管 IAM 策略。
请查看如何从另一个 AWS 账户复制 S3 对象?再次文章,您将能够正确设置此策略。
推荐阅读
- java - 如何将 Spring Integration XML 转换为 Java DSL
- variables - 是否可以将哈希表作为 AzureDevops 中的变量从一个代理阶段传递到另一个代理阶段
- mysql - Erlang 无法连接到 mysql/mariadb
- python - 从整个列的 DF 中获取索引值的索引值的 DataFrame
- django - 使用 ReactJS 作为前端时,我们需要渲染模板吗?
- python - 如何获取先前的行值并用作输入来计算 Pandas 中的当前行值?
- python - 在算法运行之前,我将如何创建一个函数来测试我的树?
- oracle - 连接到 Teamcity 到 OCI 自治事务处理数据库
- django - Django Celery:任务永远不会执行
- python - 为什么元组或列表中的最后一个值索引在python中给出不同的类而切片给出不同的?