amazon-web-services - 如何通过 AWS CLI 更新 Amazon S3 存储桶策略?
问题描述
我需要在 Amazon S3 存储桶策略中添加新行“arn:aws:sts::1262767:assumed-role/EC2-support-services”。
像这样的东西:
前:
{
"Version":"2012-10-17",
"Statement":[
{
"Sid":"AddCannedAcl",
"Effect":"Allow",
"Principal": {"AWS": ["arn:aws:iam::111122223333:root","arn:aws:iam::444455556666:root"]},
"Action":["s3:PutObject","s3:PutObjectAcl"],
"Resource":"arn:aws:s3:::awsexamplebucket1/*",
"Condition":{
"StringNotLike": {
"aws:arn": [
"arn:aws:sts::1262767:assumed-role/GR_COF_AWS_Prod_Support/*"
]
}
}
}
]
}
后:
{
"Version":"2012-10-17",
"Statement":[
{
"Sid":"AddCannedAcl",
"Effect":"Allow",
"Principal": {"AWS": ["arn:aws:iam::111122223333:root","arn:aws:iam::444455556666:root"]},
"Action":["s3:PutObject","s3:PutObjectAcl"],
"Resource":"arn:aws:s3:::awsexamplebucket1/*",
"Condition":{
"StringNotLike": {
"aws:arn": [
"arn:aws:sts::1262767:assumed-role/GR_COF_AWS_Prod_Support/*",
"arn:aws:sts::1262767:assumed-role/EC2-support-services"
]
}
}
}
]
}
我需要使用什么 AWS CLI 命令来添加此行?
解决方案
为此,您需要使用该put-bucket-policy
命令覆盖现有的存储桶策略,因为没有版本控制。
运行它的一个例子是下面的命令
aws s3api put-bucket-policy --bucket MyBucket --policy file://policy.json
通过将当前和新策略存储为 JSON 文件,如果需要通过更新--policy
参数中的文件名来回滚,您可以在命令之间切换。
推荐阅读
- android - 从 Activity 的 2 静态片段中获取 Activity 的 1 Intent extras
- dictionary - 是否可以在创建新映射时初始化映射的值?
- constructor - gcc 链接器扩展 __attribute__((constructor)) 导致 main() 崩溃
- php - “非空 PSR-4 前缀必须以命名空间分隔符结尾”
- angular - 使用表单构建器和角材料芯片添加一组对象
- javascript - 将对象类型中的“覆盖”属性流向新类型
- php - 在一个提交上更新多个表,将 id 从第一个表传递到第二个表
- python - Spyder Editor 不在控制台中执行代码
- entity-framework - EF 核心集采取扩展可选
- angular - Angular Paginator Intl 几个选项