2014-01-13 71 views
16

是否可以(通过IAM,存储桶策略或其他方式)强制Amazon S3仅使用通过HTTPS/SSL提供内容并拒绝所有常规的,未加密的HTTP访问?在Amazon S3上强制使用SSL

回答

21

我相信这可以通过使用桶策略来实现。使用条件aws:SecureTransport:false拒绝所有有关存储桶的http请求。
以下未经测试,但它应该让您了解如何为您的情况进行设置。

{ 
    "Statement":[ 
     { 
      "Action": "s3:*", 
      "Effect":"Deny", 
      "Principal": "*", 
      "Resource":"arn:aws:s3:::bucketname/*", 
      "Condition":{ 
       "Bool": 
       { "aws:SecureTransport": false } 
      } 
     } 
    ] 
} 
2

在这里,您允许传入流量但拒绝非SSL SSL。如果你想回去只是删除了2 第二声明:

{ 
    "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证书。 All the information can be found here