【以下的问题经过翻译处理】 你好,
我已经使用Control Tower创建了一个landing zone(包括审计和日志账户等)。在日志账户中,我有一个S3存储桶,用来从组织中的所有当前和未来的账户中接收VPC流日志。因此,我想创建一个存储桶策略,只允许接收属于组织的源账户的VPC流日志。其他团队通过自助服务的方式使用Control Tower Factory创建了新的账户,因此我需要按照组织的方式进行过滤,而不是按照账户ID或具体的ARN进行过滤。
根据VPC流日志用户指南,我得将以下语句(还有另一个类似的语句,但咱们简化点来说)添加到S3存储桶策略的目标存储桶中:
{
"Sid":“AWSLogDeliveryWrite”,
"Effect":“Allow”,
"Principal":{"Service":“delivery.logs.amazonaws.com”},
"Action":“s3:PutObject”,
"Resource":“my-s3-arn”,
"Condition":{
“StringEquals”:{
“s3:x-amz-acl”:“bucket-owner-full-control”,
“aws:SourceAccount”:account_id
},
“ArnLike”:{
“aws:SourceArn”:“arn:aws:logs:region:account_id:*”
}
}
}
因为我需要按组织而不是按账户进行过滤,所以我尝试使用aws:PrincipalOrgID条件键代替SourceAccd'sount和SourceArn。然而,我会收到一个错误,说aws:PrincipalOrgID不支持service principals,所以无法创建策略。
我也尝试过使用aws:PrincipalOrgPaths条件键。然而,虽然我创建policy成功了,但是创建日志流的时候又报错:
"Access Denied for LogDestination: bucket_name. Please check LogDestination permissions."
我也试过将principal设置成"*"并且条件键设置为"aws:PrincipalServiceName": "delivery.logs.amazonaws.com" ,但是也是在设置日志流的时候报了同样的错误。
有谁知道这该怎么办吗?先谢了。