amazon-web-services - AWS IAM 条件策略
问题描述
我试图在特定资源具有一些标签键/值对的条件下提供对 IAM 策略的访问。尽管遵循了AWS 文档,但它似乎不起作用。
IAM 政策如下:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "*",
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:ResourceTag/environment": "dev"
}
}
}
]
}
我有一个my-bucket-name
带有标签的 S3 存储桶(名为 ):environment = dev
。谁能向我解释为什么以下命令失败?
$ aws s3 ls s3://my-bucket-name
An error occurred (AccessDenied) when calling the ListObjectsV2 operation: Access Denied
$ aws s3 cp s3://my-bucket-name/file.json .
fatal error: An error occurred (403) when calling the HeadObject operation: Forbidden
更新:基于@Dennis Traub和@jarmod的响应,我稍微编辑了这个以将标签添加到 S3 存储桶中的对象,但我仍然无法读取该对象。我还尝试将条件更改为"s3:RequestObjectTag/environment": "dev"
但仍然不行。
解决方案
如果我没记错的话,Amazon S3 不支持基于存储桶标签的条件键,只支持对象标签。这就是为什么它不起作用。
推荐阅读
- here-api - 路线匹配捕捉到路的尽头
- javascript - 如何在 react-native 中使用 if 条件渲染元素?
- ios - 如何在 Carthage 依赖项上禁用 Bitcode
- rest - 即使“ssl”设置为“false”,仍收到 SSL 错误
- r - 跨不同目录将一个函数的列表传递给另一个函数
- mysql - 如何在不同的表中找到匹配项?
- java - 为什么我的迭代器搜索会输出此异常?
- javascript - Spring Boot + Angular 应用程序
- ionic-framework - Ionic 4 中的自动隐藏浮动操作按钮
- python - 如何登录弹出窗口?