2017-01-31 12 views
0

私たちは、S3とラムダに関連するリソースパーミッションに関する問題を解決しようとしています。 アカウントA - - バケット所有者 アカウントBを - (CORS経由)アップロードし、S3の画像に ROLE Lをアクセスを与えるために使用 -AWSプライベートS3リソースへのラムダアクセスの取得

は、私たちは、これにより、次に持ってrootアカウントを持っている私たちは、と、この役割を割り当てられたラムダ関数を持っていますラムダは可能で -

{ 
"Version": "2012-10-17", 
"Id": "Policyxxxxxxxxx", 
"Statement": [ 
    { 
     "Sid": "Stmt44444444444", 
     "Effect": "Deny", 
     "NotPrincipal": { 
      "AWS": [ 
       "arn:aws:iam::xxxxxxxxxxxx:user/account-A", 
       "arn:aws:iam::xxxxxxxxxxxx:role/role-L" 
      ] 
     }, 
     "Action": [ 
      "s3:*", 
     ], 
     "Resource": [ 
      "arn:aws:s3:::bucket", 
      "arn:aws:s3:::bucket/*" 
     ] 
    } 
] 

}

問題 - フルS3アクセス

バケットは、アクセスポリシー以下のように持っていますオブジェクトACLが公開/読み取り専用に設定されている場合にのみS3リソースにアクセスします。しかし、リソースが 'プライベート'に設定されていると、Lambdaは失敗します。

バケットポリシーは、バケットにアクセスするだけです。ロールLにリソースへの読み取りアクセス権を与える方法はありますか?

答えて

2

Amazon S3バケットに格納されるオブジェクトは、デフォルトでのプライベートです。コンテンツへのアクセスを許可する別のポリシーを上書きしない限り、Denyポリシーを使用する必要はありません。

私が推薦する:

  • をごAWSラムダ関数のIAM役割を作成し、そのロール内S3バケットにアクセスする権限を付与あなたのDenyポリシー
  • を削除します。

は、必要に応じて、通常の使用のためにバケットポリシーを追加すること自由に感じ、それは役割を経て付与され、あなたのラムダ関数のアクセスに影響を与えるべきではありません。

関連する問題