amazon-web-services - 创建 S3 存储桶策略以根据私有云的访问密钥限制访问
问题描述
此方案适用于本地私有云。我们在一个租户中有多个存储桶。我们为同一租户中的各个存储桶生成访问密钥和密钥。我想使用存储桶策略根据访问密钥授予对存储桶的访问权限,并拒绝租户中剩余存储桶的访问。
解决方案
您无法通过 IAM 密钥执行此操作,但您可以通过委托人(在本例中为 IAM 用户)执行此操作。
使用NotPrincipal
您可以独占拒绝非所引用 IAM 用户的任何人的权限。使用它来小心防止意外阻止自己管理存储桶。
以下是使用此存储桶策略的示例
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "statement1",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::123456789:user/$USERNAME"
},
"Action": [
"s3:Put*",
"s3:Get*",
"s3:List*"
],
"Resource": [
"arn:aws:s3:::awsexamplebucket1",
"arn:aws:s3:::awsexamplebucket1/*"
]
},
{
"Sid": "statement1",
"Effect": "Deny",
"NotPrincipal": {
"AWS": "arn:aws:iam::123456789:user/$USERNAME"
},
"Action": [
"s3:Put*",
"s3:Get*",
"s3:List*"
],
"Resource": [
"arn:aws:s3:::awsexamplebucket1",
"arn:aws:s3:::awsexamplebucket1/*"
]
}
]
}
推荐阅读
- c# - 如何使用 C# 驱动程序 2.10.4 在 MongoDB 中查找特定字段的最小值
- reactjs - 用打字稿定义组件的最简单方法
- git - Git:将隐藏的更改合并到头部
- jboss - Keycloak - 在本机移动应用程序中使用旧版身份验证系统
- javascript - 将 cypress-image-snapshot 差异图像注入 Mochawesome 报告
- flask - Flask:如何为所有方法注册一个包装器
- django - ListView中多个上下文中特定上下文的分页在django中不起作用?
- php - Laravel ErrorException 未定义偏移量:添加 Route::Auth() 时为 0;
- javascript - 在每次 API 调用之前验证 JWT 令牌
- ubuntu - LXC - 无法创建 macvlan 接口 - 不允许操作