2012-02-22 25 views

答えて

17

あなたが直接AWS Management Consoleに見ている権限がSpecifying a Permissionを参照して、基本的に区別S3、READWRITE権限で使用可能な最初の比較的簡単なAccess Control Lists (ACL)に基づいています:

  • READ - 受領者がバケット内のオブジェクトを一覧表示できるようにする
  • 書き込み - 権限受領者が作成することができ、上書き、およびこれらの制限は、(権限がユーザレベルで適用Bucket Policies(許可はバケットレベルで適用される)とIAM Policiesを添加することによって対処されてきた

バケット内の任意のオブジェクトを削除します)、3つを一緒に使用することもできます(下で説明するように、複雑になる可能性があります)。画像全体についてはAccess Controlを参照してください。

あなたのユースケースではおそらく、それぞれのバケットポリシーがS3コンソールから直接追加されます。 バケットポリシーの追加は、バケットポリシーエディタを開きます。このバケットポリシーエディタには、いくつかのサンプルへのリンクと、ユースケースに対処するポリシーを組み立てることをお薦めするAWS Policy Generatorがあります。

そうでない場合はロックダウンされたバケットの

、最も単純な形式は、(あなたのニーズに校長リソースを調整することを確認してください)ので、次のようになります。

{ 
    "Statement": [ 
    { 
     "Action": [ 
     "s3:PutObject" 
     ], 
     "Effect": "Allow", 
     "Resource": "arn:aws:s3:::<bucket_name>/<key_name>", 
     "Principal": { 
     "AWS": [ 
      "*" 
     ] 
     } 
    } 
    ] 
} 

ユースケースによっては、することができます許可拒否のアクションなどを組み合わせることで、かなり複雑なポリシーを簡単に作成できます。これは明らかに不用意な権限も同様に生じる可能性があります。したがって、Using ACLs and Bucket Policies TogetherまたはIAM and Bucket Policies Togetherを使用する場合の影響に注意してください。

最後に、私の答えをProblems specifying a single bucket in a simple AWS user policyにも見てみましょう。これは、一般的に遭遇した別の落とし穴に対処しています。

5

あなたのs3バケットにno-deleteポリシーを添付することができます。あなたがチェックするために、ポリシーシミュレータhttps://policysim.aws.amazon.comを使用してポリシーを確認することができ、また

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Sid": "Stmt1480692207000", 
      "Effect": "Deny", 
      "Action": [ 
       "s3:DeleteBucket", 
       "s3:DeleteBucketPolicy", 
       "s3:DeleteBucketWebsite", 
       "s3:DeleteObject", 
       "s3:DeleteObjectVersion" 
      ], 
      "Resource": [ 
       "arn:aws:s3:::*" 
      ] 
     } 
    ] 
} 

:あなたはこのIAMユーザーが任意のバケットまたは任意のオブジェクトへの削除操作を実行しない場合たとえば、あなたはこのようなものを設定することができますあなたの設定があなたが期待していたものかどうかは分かりません。

希望すると便利です。

2

これは完璧に機能しました。 Pung Worathiti Manosroiに感謝します。下記のように彼の言及した政策を組み合わせた:

{  

"Statement": [  

    { 
     "Effect": "Allow", 
     "Action": [ 
      "s3:GetObject", 
      "s3:PutObject", 
      "s3:GetObjectAcl", 
      "s3:PutObjectAcl", 
      "s3:ListBucket", 
      "s3:GetBucketAcl", 
      "s3:PutBucketAcl", 
      "s3:GetBucketLocation" 
     ], 
     "Resource": "arn:aws:s3:::mybucketname/*", 
     "Condition": {} 
    }, 
    { 
     "Effect": "Allow", 
     "Action": "s3:ListAllMyBuckets", 
     "Resource": "*", 
     "Condition": {} 
    }, 
    { 
     "Effect": "Deny", 
     "Action": [ 
      "s3:DeleteBucket", 
      "s3:DeleteBucketPolicy", 
      "s3:DeleteBucketWebsite", 
      "s3:DeleteObject", 
      "s3:DeleteObjectVersion" 
     ], 
     "Resource": "arn:aws:s3:::mybucketname/*",  

     "Condition": {}  

    } 
] 
}  
関連する問題