Kanji
・雲端架構工程師 / 自由職業 ・1993年出生 ・愛媛縣出身 / 現居東京都澀谷區 ・5年 AWS 實戰經驗 個人檔案詳情
目錄
Amazon S3(簡單儲存服務)是一種 可擴充套件且高度耐用的物件儲存服務 。 它使儲存、檢索和管理資料變得容易,並用於備份、歸檔和資料湖等多種用途。
<塊引用> Amazon Simple Storage Service (Amazon S3) 是一種物件儲存服務,提供業界領先的可擴充套件性、資料可用性、安全性和效能。 各種規模和行業的客戶都可以使用 Amazon S3 來儲存和保護各種用例的任意數量的資料,例如資料湖、網站、移動應用程式、備份和恢復、存檔、企業應用程式、物聯網裝置和大資料分析。 Amazon S3 提供管理功能,以便您可以最佳化、組織和配置對資料的訪問,以滿足您的特定業務、組織和合規性要求。
什麼是 Amazon S3 - AWS 文件
在 AWS 上構建環境時,請考慮將生成什麼型別的資料以及如何儲存這些資料。例如,可能涉及以下型別的資料:
如果您僅使用 EC2 構建系統,您可能首先考慮將資料儲存在 EBS 捲上。 但是,對於長期資料儲存或高可用性,將資料儲存在 S3 中可以提高成本效率和容錯能力。 請注意,與儲存在作業系統內的資料相比,訪問速度較慢,因此經常訪問的資料應儲存在EBS上,而需要長期儲存的資料(例如存檔或備份)應儲存在S3上。
對於“日誌資料”,以下 AWS 服務可以使用 S3 儲存桶作為輸出目標。建議將CloudTrail日誌儲存在S3儲存桶中以便長期保留,方便後期審計和分析。
根據資料的重要性和機密性對資料進行分類。 例如,可以考慮以下分類。根據此處分類的資料型別,考慮適當的訪問控制和加密。
如有必要,進一步細分資料分類。 例如,一般資料中包含的日誌可以進一步分類為“審計日誌”、“業務日誌”和“系統日誌”。“公共資料”還可以根據釋出範圍進行分類,例如“內部使用”、“合作伙伴使用”和“公開”。
根據資料分類設定適當的訪問控制。S3儲存桶的訪問控制可以透過以下方式實現:
針對每種控制方法考慮以下策略:
使用 IAM 策略控制對 S3 儲存桶的訪問許可權。IAM 策略向使用者或角色授予 S3 儲存桶的訪問許可權。
隨著桶數量的增加,IAM策略中透過桶名稱控制訪問會變得複雜,因此需要結合KMS加密進行控制。 下面是對“1.資料分類”中分類的資料進行加密的示例:
透過加密,即使您授予只讀策略(例如 AWS 託管的“ReadOnlyAccess”),無法訪問 KMS 金鑰的使用者也無法檢視資料內容。 此外,透過使用 IAM 策略控制對 KMS 金鑰的訪問,您可以僅允許特定使用者或角色解密資料。
使用 VPC 終端節點策略來限制對特定 S3 儲存桶的訪問。與 IAM 策略一樣,透過儲存桶名稱進行控制可能會變得複雜,因此請考慮使用 VPC 終端節點策略限制特定 AWS 賬戶或組織對 S3 儲存桶的訪問。 這有助於防止未經授權的資料傳輸並提高安全性。
例如,透過設定如下所示的 VPC 終端節點策略,您可以僅允許特定組織訪問 S3 儲存桶。 另外,還允許 SSM Agent 或 AWS Systems Manager Patch Manager 訪問 AWS 託管的 S3 儲存桶。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowOnlyOrgAccess", "Effect": "Allow", "Principal": "*", "Action": "s3:*", "Resource": "arn:aws:s3:::*", "Condition": { "StringEquals": { "aws:PrincipalOrgID": [ "o-xxxxxxx", ], "aws:ResourceOrgID": [ "o-xxxxxxx" ] } } }, { "Sid": "AllowAWSManagedBuckets", "Effect": "Allow", "Principal": "*", "Action": ["s3:GetObject"], "Resource": [ "arn:aws:s3:::al2023-repos-ap-northeast-1-de612dc2/*", "arn:aws:s3:::aws-windows-downloads-ap-northeast-1/*", "arn:aws:s3:::amazon-ssm-ap-northeast-1/*", "arn:aws:s3:::aws-ssm-ap-northeast-1/*", "arn:aws:s3:::patch-baseline-snapshot-ap-northeast-1/*", "arn:aws:s3:::aws-patch-manager-ap-northeast-1-552881074/*", "arn:aws:s3:::aws-patchmanager-macos-ap-northeast-1-552881074/*" ] } ] }
使用儲存桶策略來控制對 S3 儲存桶的訪問。預設情況下,除非您定義允許規則,否則只有建立儲存桶的 AWS 賬戶具有訪問許可權。 透過定義允許規則,您可以向建立儲存桶的賬戶外部的使用者、角色或 AWS 服務授予訪問許可權。 僅授予最低限度的必要許可權以降低安全風險。
Security Hub 定義了儲存桶策略的控制,建議遵循以下規則:
[S3.5] S3 通用儲存桶應要求請求使用 SSL。 [S3.6] S3 通用儲存桶策略應限制對其他 AWS 賬戶的訪問。
第一條規則建議設定儲存桶策略以拒絕訪問 S3 儲存桶時不使用 SSL 的請求。 您可以設定如下儲存桶策略來拒絕不使用 SSL 的請求:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RequireSSL", "Effect": "Deny", "Principal": "*", "Action": "s3:*", "Resource": "arn:aws:s3:::example-bucket/*", "Condition": { "Bool": { "aws:SecureTransport": "false" } } } ] }
您可以使用儲存桶 ACL(訪問控制列表)來控制對 S3 儲存桶的訪問。但如下所述,不建議使用桶ACL,最好使用IAM策略或桶策略進行訪問控制。
<反引號> Amazon S3 的大多數現代用例不再需要使用 ACL。 因此,除非您遇到需要控制對單個物件的訪問的異常情況,否則建議禁用 ACL。 禁用 ACL 可以更輕鬆地使用策略控制對儲存桶中所有物件的訪問,無論物件是誰上傳的。
控制物件所有權並禁用儲存桶 ACL - Amazon Simple Storage Service
由於使用的機會很少,因此省略了有關儲存桶 ACL 的說明。
使用KMS(金鑰管理服務)對S3儲存桶中的資料進行加密。使用KMS金鑰加密的資料受KMS金鑰策略控制。 如“1. IAM 策略”中所述,您可以透過 IAM 策略控制對 KMS 金鑰的訪問,從而限制對儲存桶中資料的訪問。 以下是根據資料分類設定 KMS 金鑰的概述:
SSE-S3(S3標準加密)是S3提供的伺服器端加密,可自動加密資料。 它可以免費使用,但您無法使用 IAM 策略或 KMS 金鑰策略控制訪問。 如果不需要訪問控制,您可以使用SSE-S3輕鬆加密資料。