クライアント IP アドレスに基づいて、Amazon S3 に保存されているファイルへのアクセスを制限する方法はありますか?
そこにファイルが保存されており、特定の IP アドレスだけがアクセスできるはずです。これを行う方法?
クライアント IP アドレスに基づいて、Amazon S3 に保存されているファイルへのアクセスを制限する方法はありますか?
そこにファイルが保存されており、特定の IP アドレスだけがアクセスできるはずです。これを行う方法?
はい、ありますが、私はこれを自分で使用したことはありません。
S3 は、「アクセス ポリシー言語」を使用して、バケットとその中のオブジェクトをきめ細かく制御できます。利用可能な特定のホワイトリストおよびブラックリストの IP ステートメントがあります。ただし、APL ステートメントを作成してアップロードする必要があります。
http://docs.amazonwebservices.com/AmazonS3/latest/dev/AccessPolicyLanguage.html
2 つの条件セクションの例を次に示します。
ホワイトリスト
"Condition" : {
"IpAddress" : {
"aws:SourceIp" : ["192.168.176.0/24","192.168.143.0/24"]
}
}
ブラックリスト
"Condition" : {
"NotIpAddress" : {
"aws:SourceIp" : ["192.168.176.0/24","192.168.143.0/24"]
}
}
Amazon は、S3 ドキュメントの「Bucket Policy Examples」の「Restricting Access to Specific IP Addresses 」でこれについて説明しています。
このステートメントの条件は、54.240.143.188 という 1 つの例外を除いて、許可された IP アドレスの範囲 54.240.143.* を識別します。
{
"Version": "2012-10-17",
"Id": "S3PolicyId1",
"Statement": [
{
"Sid": "IPAllow",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:*",
"Resource": "arn:aws:s3:::examplebucket/*",
"Condition": {
"IpAddress": {"aws:SourceIp": ["54.240.143.0/24", "1.2.3.4/32" ]},
"NotIpAddress": {"aws:SourceIp": "54.240.143.188/32"}
}
}
]
}
そのようなものを AWS S3 コンソールに追加できます。バケットを選択し、[プロパティ] タブをクリックしてから、[権限] をクリックします。[バケット ポリシーを追加] をクリックして、ポップアップ ダイアログのフォームに貼り付けます。
Amazon の例を変更して、文字列の代わりに JSON 配列を提供することで、ポリシーに複数の IP 範囲を含める方法を示しました。「1.2.3.4/32」の「aws:SourceIp」エントリは、単一の IP アドレス 1.2.3.4 にもアクセスが許可されることを意味します。