クライアント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ドキュメントの「バケットポリシーの例」の 特定のIPアドレスへのアクセスの制限 で説明しています。
このステートメントの条件は、許可されたIPアドレスの54.240.143。*範囲を識別しますが、1つの例外があります:54.240.143.188。
{
"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コンソールにそのようなものを追加できます。バケットを選択し、[プロパティ]タブ、[権限]の順にクリックします。 [バケットポリシーの追加]をクリックして、ポップアップダイアログのフォームに貼り付けます。
文字列の代わりにJSON配列を提供することにより、ポリシーに複数のIP範囲を含める方法を示すために、Amazonの例を修正しました。 「1.2.3.4/32」の「aws:SourceIp」エントリは、単一のIPアドレス1.2.3.4にもアクセスが許可されることを意味します。