1

グループがあり、以下のポリシーをグループに適用しました。グループにユーザーを追加し、ユーザーのアクセス キーを作成しました。「mybucket」から取得できますが、「mybucket」にプットできません。Put しようとすると、「アクセスが拒否されました」と表示されます。誰が私が間違っているのか教えてもらえますか。私にお知らせください。

   {
       "Statement":[{
          "Effect":"Allow",
          "Action":["s3:PutObject","s3:GetObject"],
          "Resource":["arn:aws:s3:::mybucket","arn:aws:s3:::mybucket/*"] 
          },
          {
          "Effect":"Deny",
          "Action":["*"],
          "NotResource":["arn:aws:s3:::mybucket","arn:aws:s3:::mybucket/*"]  
          }
       ]
    }

編集: 誰かが私にポリシーの目標を述べるように頼んだ. 指定したバケットのグループに PUT および GET 権限のみを「許可」したい。指定されていないすべてのリソース (NotResource) について、グループに対する他のすべてのアクセス許可を明示的に「拒否」したいと考えています。AWS が投稿した記事に基づいて、明示的な「拒否」を追加しました。これは、そうすることをお勧めします。

4

2 に答える 2

1

From: IAM 言語情報

各ポリシーは、1 つのバケットとそのバケット内のリソースのみをカバーする必要があります (ポリシーを作成するときは、他のバケットまたは他のバケット内のリソースを参照するステートメントを含めないでください)。

于 2011-12-16T23:15:47.203 に答える
0

Deny ステートメントは常に Allow ステートメントよりも優先されます。これは、上記のポリシーがユーザーによるすべてのアクセスをブロックする必要があることを意味します。Get および Put リクエストをどのように処理していますか? Gets が匿名で (認証なしで) 実行された可能性はありますか?

上記のポリシーの目標が何であったかを理解するのに役立ちますか? Deny ステートメントの目的は何ですか?

于 2011-02-02T01:50:18.140 に答える