これはフォローアップですが、AWS s3 バケット ポリシーの無効なグループ プリンシパルからの独立した質問です。
開発者と協力者の 2 つのグループがあります。開発者には、構成済みの「PowerUser」グループ ポリシーがあります。共同作業者には次のグループ ポリシーがあります
{
"Version": "2012-10-17",
"Statement":[
{
"Effect":"Allow",
"Action":[
"s3:ListAllMyBuckets"
],
"Resource":"arn:aws:s3:::*"
},
{
"Effect":"Allow",
"Action":[
"s3:ListBucket",
"s3:GetBucketLocation"
],
"Resource":"arn:aws:s3:::bucket"
},
{
"Effect":"Allow",
"Action":[
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject"
],
"Resource":"arn:aws:s3:::bucket/*.txt"
}
]
}
バケットには、暗号化されていない .txt ファイルのアップロードを拒否する次のポリシーがあります。
{
"Version": "2008-10-17",
"Id": "PutObjPolicy",
"Statement": [
{
"Sid": "DenyUnEncryptedObjectUploads",
"Effect": "Deny",
"Principal": {
"AWS": "*"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::bucket/*.txt",
"Condition": {
"StringNotEquals": {
"s3:x-amz-server-side-encryption": "AES256"
}
}
}
]
}
私が期待する動作:「開発者」グループはあらゆる種類のファイルを置くことができ、「.txt」ファイルはディレクトリの作成を含めて暗号化する必要があります。「コラボレーター」グループは、「.txt」ファイルのみを配置、取得、および削除できます。ディレクトリを作成することはできません。
私が得る動作は、「開発者」の期待どおりです。「コラボレーター」の動作は開発者と同じです。「.txt」ファイルしか配置できない場合でも、任意のファイルを配置できます。
私は何を間違っていますか?