このトピックに関する同様の質問はすでにhereと尋ねられましたが、そのポストのソリューションはどれも私のために働いていませんでした。新しい質問をすることを正当化するAWSで何かが変更された可能性があると考えてください。特定のS3バケットにしかアクセスできないIAMグループのAWS CloudFormationテンプレート
基本的に、私はCloudFormationテンプレートを使用して、インラインポリシーでIAMグループを定義しているため、ユーザーは1つのS3バケットにしかアクセスできません。
BucketAccessGroup:
Type: AWS::IAM::Group
Properties:
GroupName: my-bucket-admins
Path: /my-bucket-admins/
Policies:
- PolicyName: MyBucketAccess
PolicyDocument:
Version: 2012-10-17
Statement:
-
Effect: Allow
Action: s3:*
Resource:
- arn:aws:s3:::my-bucket-name
- arn:aws:s3:::my-bucket-name/*
-
Effect: Allow
Action: s3:ListAllMyBuckets
Resource: "*"
残念ながら、このグループのIAMユーザーがいないだけで、他のすべてのバケットを一覧表示することが許可されている:リンク質問に基づいて、私は次のテンプレート(元記事はJSONを使用するが、私はYAMLを使用しています)に到着しました(コンソールへのアクセスに必要)だけでなく、それらを開いたり、変更したり、削除したりすることもできます。明らかに、これは望ましい動作ではありません!このポリシーが無効になるAWSで何か変更されましたか?ポリシーはCloudFormationテンプレートと同じように機能しませんか?どんな助けもありがとう!
EDIT:@のwjordanの答えで述べたように
、それは別のポリシーがすでにグループにフルS3の権限を与えていたことが判明しました。私はAWSLambdaFullAccess管理ポリシーを追加していましたが、意外にもs3:*
行が許可されていました(上記のコードから除外されました。そのポリシーと共存する必要性を考えると、ここでは意図したとおりに働いている私の更新CFテンプレートであり、また少しより安全です:提供
BucketAccessGroup:
Type: AWS::IAM::Group
Properties:
GroupName: my-bucket-admins
ManagedPolicyArns: [ "arn:aws:iam::aws:policy/AWSLambdaFullAccess" ]
Policies:
- PolicyName: MyBucketAccess
PolicyDocument:
Version: 2012-10-17
Statement:
- # Prevent changing permissions in any way on the desired bucket
Effect: Deny
Action:
- s3:DeleteBucket
- s3:DeleteBucketPolicy
- s3:PutBucketPolicy
- s3:PutBucketAcl
Resource:
- arn:aws:s3:::my-bucket-name
- arn:aws:s3:::my-bucket-name
- # Prevent all S3 actions except listing buckets, on everything except the desired bucket (AWSLambdaFullAccess already allows s3:*)
Effect: Deny
NotAction: s3:ListAllMyBuckets
NotResource:
- arn:aws:s3:::my-bucket-name
- arn:aws:s3:::my-bucket-name
あなたは正しいです!また、AWSLambdaFullAccess管理ポリシーをグループに追加していましたが、そのポリシーが完全なS3権限を追加していたことに気付きませんでした。改訂されたポリシーを質問に追加します。 – Rabadash8820