3

Amazon S3 バケットがあり、ログイン資格情報をデプロイする必要なく、特定のマシン上のスクリプトで利用できるようにしたいと考えています。したがって、私の計画は、そのマシンの IP からのみ匿名アクセスを許可することでした。私は Amazon クラウドにまったく慣れていないので、バケット ポリシーは最適な方法のようです。次のポリシーをバケットに追加しました。

{
    "Version": "2008-10-17",
    "Id": "S3PolicyId1",
    "Statement": [
        {
            "Sid": "IPAllow",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::name_of_my_bucket/*",
            "Condition": {
                "IpAddress": {
                    "aws:SourceIp": [
                        "my_ip_1/24",
                        "my_ip_2/24"
                    ]
                }
            }
        }
    ]
}

ただし、匿名アクセスはまだ機能しません。テストのために、S3 管理コンソールで「Everyone」へのアクセスを許可しました。それはうまくいきますが、明らかに私がやりたいことではありません。;-)私が間違っていることと、これを機能させる方法のヒントはありますか?

私のユースケースは、EC2 と S3 を使用したデータ処理であるため、IP によるアクセス制御は、ユーザー アカウントをいじるよりもはるかに簡単です。もっと簡単な解決策があれば、提案をお待ちしています。

4

1 に答える 1

3

ただし、匿名アクセスはまだ機能しません。

まだ正確に機能しない操作はどれですか。たまたま、バケット内のオブジェクトを一覧表示しようとしていますか?

多くの場合、Amazon S3 API 呼び出しResourceが、ポリシーによって既に明示的にターゲットにされているものに加えて、さまざまなリソース タイプに対処することも暗示的に含まれます。具体的には、サービスに対する操作( ListAllMyBuckets など)、バケットに対する操作( ListBucket など)、およびオブジェクトに対する操作( GetObjectなど)の違いを認識する必要があります。

特に、Resourceポリシーの仕様は現在、バケット内のオブジェクトのみに対応しています ( arn:aws:s3:::name_of_my_bucket/*)。これは、バケット内のオブジェクトを一覧表示できないことを意味します (場合によっては、オブジェクトを配置/取得/削除できるはずです)。ListBucketを介してバケット内のオブジェクトのリストを許可するには、それに応じて次のようにポリシーを修正する必要があります。

{
    "Version": "2008-10-17",
    "Id": "S3PolicyId1",
    "Statement": [
        {
            // ... your existing statement for objects here ...
        },
        {
            "Sid": "IPAllow",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::name_of_my_bucket",
            "Condition": {
                "IpAddress": {
                    "aws:SourceIp": [
                        "my_ip_1/24",
                        "my_ip_2/24"
                    ]
                }
            }
        }
    ]
}
于 2013-04-22T09:31:44.070 に答える