-1

特定の IAM ユーザーのみにアクセスを制限するように、S3 に配置したいファイルがたくさんあります。ポリシーをユーザーとバケットに関連付けようとしましたが、s3-cmd を使用してバケット内のファイルにアクセスしようとしています。ただし、応答でアクセス拒否 xml を取得し続けます (403 禁止)。私のポリシーは次のようになります。

{
    "Version": "2008-10-17",
    "Statement": [
        {
        "Sid": "<a statementID>",
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::<my-account-num>:user/<username>"
        },
        "Action": "s3:*",
        "Resource": [
            "arn:aws:s3:::<bucket-name>/*",
            "arn:aws:s3:::<bucket>"
            ]
         }
    ]
}

プリンシパルを "AWS": "*" に設定した場合にのみ、REST 呼び出しを介してリソースをダウンロードできます。

問題のユーザーには、「パワー ユーザー」ポリシーが関連付けられています。

{
  "Statement": [
   {
      "Effect": "Allow",
      "NotAction": "iam:*",
      "Resource": "*"
   }
 ]

}

プライベートのみのアクセスに S3 バケットを使用するにはどうすればよいですか? 助けてください。

4

1 に答える 1

-2

問題はポリシーではなく、アクセス元のマシンにありました。EC2 インスタンスから S3 リソースの取得操作を実行しようとしていました。今日、すべての EC2 インスタンスに IAM ロールを「引き受けさせる」ことができることがわかりました。インスタンスがそれを行うと、そのロールに指定されたアクセス許可を継承します。したがって、次のポリシーでロールを作成するだけです。

{
  "Statement": [
    {
     "Effect": "Allow",
     "Action": "s3:*",
     "Resource": "*"
    }
   ]
}

EC2 インスタンスにこの役割を引き受けさせることで、S3 バケットと通信できるようになります。

于 2013-01-16T14:30:37.317 に答える