2017-05-31 38 views
2

ユーザーのグループに特定のタグを持つすべてのs3バケットにアクセス権を付与しようとしていますが、他のすべてのアクセス権はありません。AWS S3 IAMはタグに基づくバケットへのアクセスを許可します

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Sid": "AllowListAll", 
      "Effect": "Allow", 
      "Action": [ 
       "s3:ListAllMyBuckets" 
      ], 
      "Resource": [ 
       "arn:aws:s3:::*" 
      ] 
     }, 
     { 
      "Sid": "AllowAllIfGroup", 
      "Effect": "Allow", 
      "Action": [ 
       "s3:*" 
      ], 
      "Condition: : { 
       "StringEquals" : { 
         "s3.ResourceTag/allow-group": "s3-access-group" 
       } 
      }, 
      "Resource": [ 
       "arn:aws:s3:::*", 
       "arn:aws:s3:::*/*" 
      ] 
     } 
    ] 
} 

と私は私がタグ付けされたバケツのARN、ListAllMyBuckets作品に対するListBucketのための政策とListAllMyBucketsをシミュレートしようとしていることがを動作させることはできません:私は一緒に石畳き 政策は、このようになりますListBucketは失敗します。

私はこのポリシーをec2に適合させています( 'grant start/stop/ends to instances to tag matches'のように)、それは魅力のように機能します。

これはまったく可能ですか、S3はこのようにバケットをマッチングできませんか?

(さらに明確化:私のバケツは、タグ「許可グループ」と「AllowGroup」セットを持って、私はダッシュが問題になることがあればわかりませんでした)

+0

"私はそれを働かせることができません"と定義します。どうした? – kosa

+0

これはまったく動かないはずです。ここにはコロンがありません: '' s3.ResourceTag/allow-group "" s3-access-group "' –

+0

私はちょうどチェックしました、欠落したコロンはc&pエラーです'" s3.ResourceTag/AllowGroup ":" s3-access-group "'。 –

答えて

1

私はいくつかの実験を行なったし、また、取得することができませんでしたあなたが求める結果。

はまず、S3 ResourceTagへのオンラインリファレンスはまれですが、AWS re:Invent 2016: AWS S3 Deep-Dive Hands-On Workshopは例を与える:それはS3:ResourceTagいうよりS3.ResourceTag使用

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Effect": "Allow", 
      "Action": [ 
       "s3:GetObject" 
      ], 
      "Resource": "arn:aws:s3:::EXAMPLE-BUCKET-NAME/*", 
      "Condition": { 
       "StringEquals": { 
        "S3:ResourceTag/HIPAA": "True" 
       } 
      } 
     } 
    ] 
} 

注こと。

私はバケツタグobjectタグの両方に対して、このロジックを使用してみましたが、それは動作するように得ることに成功しませんでした。私はResourceTagがバケットレベルのタグではなくオブジェクトレベルのタグを参照することを意図していると思われますが、どちらの状況でも動作しなかったためこれを証明できませんでした。

私はこのようなポリシーを使用:

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Sid": "Statement1", 
      "Effect": "Allow", 
      "Action": [ 
       "s3:*" 
      ], 
      "Resource": [ 
       "arn:aws:s3:::my-bucket", 
       "arn:aws:s3:::my-bucket/*" 
      ], 
      "Condition": { 
       "StringEquals": { 
        "s3:ResourceTag/AllowGroup": "s3-access-group" 
       } 
      } 
     } 
    ] 
} 

しかし、それは私のバケットとオブジェクトの両方が適切なタグを持っていたとしても、オブジェクトへのアクセス権を与えないだろう。

関連する問題