通過配置 Amazon S3 存儲桶策略,限制只有特定IP地址的用戶能夠訪問S3存儲桶中的對象。
本次采用AWS Console界面完成作業。
注意:根據項目的具體情況,可以采用不同的實施方法。比如使用命令行(CLI)部署、代碼部署 (CloudFomation、Terraform等)、以及其它開發語言(SDK)完成作業。
步驟一:創建Amazon S3 存儲桶
登錄 AWS 管理控制臺,進入 S3 服務。點擊“創建存儲桶”,按照向導填寫存儲桶名稱、選擇區域等信息,完成存儲桶的創建。
步驟二:上傳測試對象
進入剛剛創建的存儲桶,點擊“上傳”,選擇一個本地文件上傳到存儲桶中。
步驟三:配置存儲桶策略
1. 在存儲桶頁面,點擊“權限”選項卡,然后找到“存儲桶策略”部分,點擊“編輯”。
2. 在存儲桶策略編輯器中,輸入以下JSON格式的策略,將your-bucket-name替換為你的存儲桶名稱,192.0.2.0/24和203.0.113.0/24替換為你想要允許訪問的IP地址范圍:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowSpecificIP",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::your-bucket-name/*",
"Condition": {
"NotIpAddress": {
"aws:SourceIp": [
"192.0.2.0/24",
"203.0.113.0/24"
]
}
}
}
]
}
備注:
這個策略的含義是,拒絕所有用戶(`"Principal": "*"`)對存儲桶中所有對象(`"Resource": "arn:aws:s3:::your-bucket-name/*"`)的獲取對象操作(`"Action": "s3:GetObject"`),除非請求來自指定的IP地址范圍(通過`"Condition"`中的`"NotIpAddress"`進行限制)。
3. 點擊“保存策略”。
使用允許的IP地址訪問:從你指定的IP地址范圍的設備上,嘗試通過瀏覽器或AWS CLI訪問存儲桶中的對象。例如,使用AWS CLI命令:
aws s3 cp s3://your-bucket-name/your-object-name ./ --profile your-profile
通過本次實驗,確認可以使用存儲桶策略限制特定IP地址訪問S3對象的功能。存儲桶策略提供了一種靈活且強大的方式來控制對S3資源的訪問,可以根據實際需求進行各種復雜的訪問控制配置。