(IAM、バケットポリシーなどを介して)Amazon S3にonly HTTPS/SSL経由でコンテンツを提供し、すべての通常の暗号化されていないHTTPアクセスを拒否することは可能ですか?
これはバケットポリシーを使用して実現できると思います。条件aws:SecureTransport: false
を使用して、問題のバケットへのすべてのHTTPリクエストを拒否します。
以下はテストされていませんが、ケースに合わせて設定する方法のアイデアを提供するはずです。
{
"Statement":[
{
"Action": "s3:*",
"Effect":"Deny",
"Principal": "*",
"Resource":"arn:aws:s3:::bucketname/*",
"Condition":{
"Bool":
{ "aws:SecureTransport": false }
}
}
]
}
ここでは、着信トラフィックを許可しますが、非SSLトラフィックを拒否します。戻る場合は、2を削除してくださいnd ステートメント:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::yourbucketnamehere/*"
},
{
"Sid": "PublicReadGetObject",
"Effect": "Deny",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::yourbucketnamehere/*",
"Condition":{
"Bool":
{ "aws:SecureTransport": false }
}
}
]
}
バケット名をyourbucketnamehere
に置くことを忘れないでください。
次に、SSL証明書をインストールする必要があります。 すべての情報はここにあります 。