2017-05-01 7 views
1

以前はAWS S3を使用したことがありません。私たちはそれを使用して、クライアントの通話録音を自動的にバックアップします。監査目的のクライアントの1人は、録画にアクセスする必要があります。Amazon S3バケット内のサブディレクトリを読み取るためのアクセス権を付与します

ファイルにアクセスする方法として、クライアントCyber​​Duckを使用しています。

私はそれらのファイルにのみアクセスしたいと思っています。次のように

当社のファイル構造は次のとおりです。

recordings/12345/COMPANYNAMEHERE/ 

私はちょうどあなたが構築し、スクリプトやポリシーに基づいて物事を行うことを学びました。だから私はいくつかの研究を行い、1つを構築しようとしましたが、リスティングでアクセスが拒否されます。

私はこれについて正しく行っているのか不思議です。

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Effect": "Allow", 
      "Action": "s3:ListAllMyBuckets", 
      "Resource": "arn:aws:s3:::*" 
     }, 
     { 
      "Effect": "Allow", 
      "Action": "s3:*", 
      "Resource": [ 
       "arn:aws:s3:::recordings/12345/COMPANYNAMEHERE", 
       "arn:aws:s3:::recordings/12345/COMPANYNAMEHERE/*" 
      ] 
     } 
    ] 
} 
+0

これは役立つかもしれない:http://docs.aws.amazon.com/ AmazonS3/latest/dev/walkthrough1.html#walkthrough-grant-user1-permissionsおよびこれもhttp:// docs .aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html – kosa

答えて

3

あなただけの彼らは、あなたのバケットの名前を一覧表示することができますし、何かを行うことはできませんを意味し、ListAllMyBucketsに彼らに許可を与えています。

すでにIAMユーザーを作成している場合は、このポリシーを指定すると、指定したディレクトリ(またはより正確には、特定のプレフィックス)からファイルを一覧表示して取得できます。

あなたはこれに顧客との多くを行う場合は
{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Action": [ 
       "s3:ListBucket" 
      ], 
      "Effect": "Allow", 
      "Resource": [ 
       "arn:aws:s3:::my-bucket" 
      ], 
      "Condition": { 
       "StringLike": { 
        "s3:prefix": [ 
         "recordings/123/*" 
        ] 
       } 
      } 
     }, 
     { 
      "Action": [ 
       "s3:GetObject" 
      ], 
      "Effect": "Allow", 
      "Resource": [ 
       "arn:aws:s3:::my-bucket/recordings/123/*" 
      ] 
     } 
    ] 
} 

、その後、あなたは自分のユーザー名を置換するルールを作成するためにIAM Policy Variablesを使用することができます。

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Action": [ 
       "s3:ListBucket" 
      ], 
      "Effect": "Allow", 
      "Resource": [ 
       "arn:aws:s3:::my-bucket" 
      ], 
      "Condition": { 
       "StringLike": { 
        "s3:prefix": [ 
         "recordings/${aws:username}/*" 
        ] 
       } 
      } 
     }, 
     { 
      "Action": [ 
       "s3:GetObject" 
      ], 
      "Effect": "Allow", 
      "Resource": [ 
       "arn:aws:s3:::my-bucket/recordings/${aws:username}/*" 
      ] 
     } 
    ] 
} 
関連する問題