DynamoDB 預防性安全最佳實務 - Amazon DynamoDB

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

DynamoDB 預防性安全最佳實務

下列最佳實務有助於預測並預防 Amazon DynamoDB 中的安全性事件。

靜態加密

DynamoDB 使用儲存在 AWS Key Management Service (AWS KMS) 中的加密金鑰,為資料表、索引、串流和備份中的所有使用者資料進行靜態加密。如此可透過保護您的資料免於發生未經授權的基礎儲存體存取,為資料提供另一層保護。

您可以指定 DynamoDB 是否應使用 AWS 擁有的金鑰 (預設加密類型) AWS 受管金鑰、或客戶受管金鑰來加密使用者資料。如需詳細資訊,請參閱 Amazon DynamoDB 靜態加密

使用 IAM 角色驗證對 DynamoDB 的存取權

若要讓使用者、應用程式和其他 AWS 服務存取 DynamoDB,他們必須在其 AWS API 請求中包含有效的 AWS 認證。您不應將 AWS 登入資料直接存放在應用程式或 EC2 執行個體中。這些是不會自動輪換的長期登入資料,因此如果遭到盜用,可能會對業務造成嚴重的影響。IAM 角色可讓您取得可用來存取 AWS 服務和資源的臨時存取金鑰。

如需詳細資訊,請參閱 Amazon DynamoDB 的 Identity and Access Management

使用 IAM 政策進行 DynamoDB 基礎授權

授予許可時,會決定誰可以取得這些許可、可以取得哪些 DynamoDB API 的許可,以及可以對這些資源進行的特定動作。對降低錯誤或惡意意圖所引起的安全風險和影響而言,實作最低權限是其中關鍵。

將許可政策連接至 IAM 身分 (即使用者、群組和角色),藉此授予可在 DynamoDB 資源上執行操作的許可。

您可以使用下列內容執行這項作業:

使用 IAM 政策條件進行精細定義存取控制

您在 DynamoDB 中授予許可時,可以指定條件,以決定許可政策的生效方式。對降低錯誤或惡意意圖所引起的安全風險和影響而言,實作最低權限是其中關鍵。

您可以指定使用 IAM 政策授予許可時的條件。例如,您可以執行下列動作:

  • 授予許可,允許使用者唯讀存取資料表或次要索引中的特定項目和屬性。

  • 授予許可,允許使用者根據該使用者的身分唯寫存取資料表中的特定屬性。

如需詳細資訊,請參閱使用 IAM 政策條件精細定義存取控制

使用 VPC 端點和政策來存取 DynamoDB

如果只需要從 Virtual Private Cloud (VPC) 內存取 DynamoDB,則應使用 VPC 端點來限制僅來自所需 VPC 的存取。這樣做可防止流量周遊開放式網際網路,也可防止流量受到該環境的限制。

使用 DynamoDB 的 VPC 端點可讓您使用下列內容來控制和限制存取:

  • VPC 端點政策:這些政策會套用在 DynamoDB VPC 端點上。它們可讓您控制和限制 API 對 DynamoDB 資料表的存取權限。

  • IAM 政策:利用使用連接至使用者、群組或角色的 aws:sourceVpce 條件,您可以強制要求對 DynamoDB 資料表進行的所有存取都要透過指定的 VPC 端點。

如需詳細資訊,請參閱 Amazon DynamoDB 端點

考慮用戶端加密

我們建議您先規劃加密策略,再於 DynamoDB 中使用資料表。如果您將敏感或機密資料儲存在 DynamoDB,請考慮在計劃中加入用戶端加密。如此一來,您就能盡量靠近資料來源進行加密,並確保資料在整個生命週期受到保護。將您傳輸中和靜態的敏感資料加密,有助於確保您的明文資料不會被任何第三方取得。

AWS Database Encryption SDK for DynamoDB 是一個軟體程式庫,可協助您保護在將資料表資料傳送至 DynamoDB 之前的安全性。其會加密、簽署、驗證和解密 DynamoDB 資料表項目。您可以控制要加密和簽署的屬性。

主索引鍵考量

請勿在資料表和全域次要索引的主索引中使用敏感名稱或敏感的純文字資料。鍵名稱將顯示在您的表格定義中。例如,任何具有呼叫權限的人都可以存取主索引鍵名稱DescribeTable。關鍵值可能會顯示在您的AWS CloudTrail和其他日誌中。此外,DynamoDB 會使用金鑰值散發資料和路由請求,而且 AWS 管理員可能會觀察這些值以維持服務的健康狀態。

如果您需要在表格或 GSI 金鑰值中使用敏感資料,建議您使用用 end-to-end 戶端加密。這可讓您對資料執行鍵值參考,同時確保資料在 DynamoDB 相關記錄中永遠不會以未加密的方式顯示。若要達成此目的,其中一種方法是使用 DynamoDB 的AWS 資料庫加密 SDK,但這不是必要的。如果您使用自己的解決方案,我們應該始終使用足夠安全的加密算法。您不應該使用非加密選項(如散列),因為在大多數情況下它們不被認為是足夠安全的。

如果您的主鍵名稱是敏感的,我們建議您`sk`改用`pk`和。這是一般的最佳作法,可讓您的分割區索引鍵設計變得有彈性。

如果您擔心什麼是正確的選擇,請務必諮詢您的安全專家或 AWS 客戶團隊。