2つの異なるポリシーで2つのバケットを作成しようとしています。
1つのバケットVendorsWGLogsが、ログ出力の宛先になります。
もう1つのバケットであるVendorsWGは、GetObject、PutObject、およびDeleteObjectに指定されたIAMグループへのアクセスを許可します。
これが私がこれまでに持っているものです:
"Resources": {
"VendorsWGLogs": {
"Type": "AWS::S3::Bucket",
"Properties": {},
},
"LogsBucketPolicy": {
"Type": "AWS::S3::BucketPolicy",
"Properties": {
"Bucket": {
"Ref": "VendorsWGLogs"
},
"PolicyDocument": {
"Version": "2012-10-17",
"Statement": [
{
"Sid": "WeatherGuidance LogBucket permissions",
"Effect": "Allow",
"Principal": {
"AWS" : "arn:aws:s3:::VendorsWG"
},
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:PutObjectAcl"
],
"Resource" : { "Fn::Join" : [
"", [ "arn:aws:s3:::", { "Ref" : "VendorsWGLogs" } , "/*" ]
]}
}
]
}
}
},
"VendorsWG": {
"Type": "AWS::S3::Bucket",
"Properties": {
"LoggingConfiguration": {
"DestinationBucketName": {"Ref" : "VendorsWGLogs"},
"LogFilePrefix": "testing-logs"
}
},
"Metadata": {
"AWS::CloudFormation::Designer": {
"id": "a1169860-d743-406e-a3e5-e12831826439"
},
}
},
"S3BP4TNQZ": {
"Type": "AWS::S3::BucketPolicy",
"Properties": {
"Bucket": {
"Ref": "VendorsWG"
},
"PolicyDocument": {
"Version": "2012-10-17",
"Statement": [
{
"Sid": "WeatherGuidance Object permissions",
"Effect": "Allow",
"Principal": {
"AWS" : "arn:aws:iam::someUserGroup"
},
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject"
],
"Resource" : { "Fn::Join" : [
"", [ "arn:aws:s3:::", { "Ref" : "VendorsWG" } , "/*" ]
]}
},
{
"Sid": "WeatherGuidance ListBucket",
"Effect": "Allow",
"Principal": {
"AWS" : "arn:aws:iam::someUserGroup"
},
"Action": "s3:ListBucket",
"Resource" : { "Fn::Join" : [
"", [ "arn:aws:s3:::", { "Ref" : "VendorsWG" } ]
]},
"Condition": {
"StringLike": {
"s3:prefix": "weatherguidance*"
}
}
}
]
}
}
}
}
イベントログ出力:
タイプ:
AWS::S3::Bucket
論理ID:
VendorsWG
ステータスの理由:
You must give the log-delivery group WRITE and READ_ACP permissions to the target bucket
ターゲットバケットのポリシーのプリンシパルをVendorsWGLogsとして指定するとこれが修正されると思いましたが、今は考えられません。
私は何が間違っているのですか?ロギングを有効にするにはどうすればよいですか?ありがとう
これをログバケットのプロパティの下に配置する必要があります
Properties: {
AccessControl: "LogDeliveryWrite"
}
あなたの問題は2つあると思います。
s3:ListBucket
がないため、バケットの内容を読み取ることができませんS3バケットに対するアクションは、バケット(VendorsWGLogs)およびコンテンツ(VendorsWGLogs/*
)レベルで実行されるため、リソースの下に両方をリストする必要があります。結果のポリシーは次のようになります。
"リソース":["arn:aws:s3 ::: VendorsWGLogs"、 "arn:aws:s3 ::: VendorsWGLogs/*"]