本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
下列最佳實務有助於預測並預防 Amazon DynamoDB 中的安全性事件。
- 靜態加密
-
DynamoDB 使用儲存在 AWS Key Management Service (AWS KMS)
中的加密金鑰,為資料表、索引、串流和備份中的所有使用者資料進行靜態加密。如此可透過保護您的資料免於發生未經授權的基礎儲存體存取,為資料提供另一層保護。 您可以指定 DynamoDB 是否應使用 AWS 擁有的金鑰 (預設加密類型) AWS 受管金鑰、 或客戶受管金鑰來加密使用者資料。如需詳細資訊,請參閱 Amazon DynamoDB 靜態加密。
- 使用 IAM角色來驗證對 DynamoDB 的存取
-
對於存取 DynamoDB 的使用者、應用程式和其他 AWS 服務,他們必須在其 AWS API請求中包含有效的 AWS 登入資料。您不應將 AWS 登入資料直接存放在應用程式或EC2執行個體中。這些是不會自動輪換的長期登入資料,因此如果遭到盜用,可能會對業務造成嚴重的影響。IAM 角色可讓您取得可用來存取 AWS 服務和資源的臨時存取金鑰。
- 使用 DynamoDB 基礎授權IAM的政策
-
授予許可時,您可以決定取得許可的人員、APIs他們取得許可的 DynamoDB,以及您想要在這些資源上允許的特定動作。對降低錯誤或惡意意圖所引起的安全風險和影響而言,實作最低權限是其中關鍵。
將許可政策連接至身分 IAM (即使用者、群組和角色),藉此授予許可,以在 DynamoDB 資源上執行操作。
您可以使用下列內容執行這項作業:
- 使用IAM政策條件進行精細存取控制
-
您在 DynamoDB 中授予許可時,可以指定條件,以決定許可政策的生效方式。對降低錯誤或惡意意圖所引起的安全風險和影響而言,實作最低權限是其中關鍵。
您可以在使用 IAM政策授予許可時指定條件。例如,您可以執行下列動作:
-
授予許可,允許使用者唯讀存取資料表或次要索引中的特定項目和屬性。
-
授予許可,允許使用者根據該使用者的身分唯寫存取資料表中的特定屬性。
如需詳細資訊,請參閱使用IAM政策條件進行精細存取控制。
-
- 使用VPC端點和政策來存取 DynamoDB
-
如果您只需要從虛擬私有雲端 (VPC) 內存取 DynamoDB,您應該使用VPC端點來限制僅從所需 存取VPC。這樣做可防止流量周遊開放式網際網路,也可防止流量受到該環境的限制。
使用 DynamoDB 的VPC端點可讓您使用下列項目控制和限制存取:
-
VPC 端點政策 – 這些政策會套用至 DynamoDB VPC端點。它們可讓您控制和限制對 DynamoDB 資料表的API存取。
-
IAM 政策 – 使用連接到使用者、群組或角色的政策
aws:sourceVpce
條件,您可以強制執行 DynamoDB 資料表的所有存取都是透過指定的VPC端點。
如需詳細資訊,請參閱 Amazon DynamoDB 端點。
-
- 考慮用戶端加密
-
我們建議您先規劃加密策略,再於 DynamoDB 中使用資料表。如果您將敏感或機密資料儲存在 DynamoDB,請考慮在計劃中加入用戶端加密。如此一來,您就能盡量靠近資料來源進行加密,並確保資料在整個生命週期受到保護。將您傳輸中和靜態的敏感資料加密,有助於確保您的明文資料不會被任何第三方取得。
AWS DynamoDB SDK的 Database Encryption 是一個軟體程式庫,可協助您在將資料表資料傳送至 DynamoDB 之前保護資料表資料。其會加密、簽署、驗證和解密 DynamoDB 資料表項目。您可以控制要加密和簽署的屬性。
- 主要金鑰考量事項
-
請勿在資料表和全域次要索引的主索引鍵中使用敏感名稱或敏感純文字資料。金鑰名稱會顯示在資料表定義中。例如,具有呼叫 許可的任何人都可以存取主金鑰名稱DescribeTable。索引鍵值可以顯示在您的 AWS CloudTrail 和其他 日誌中。此外,DynamoDB 會使用金鑰值來分發資料和路由請求, AWS 管理員可能會觀察這些值來維護服務的運作狀態。
如果您需要在資料表或GSI金鑰值中使用敏感資料,建議您使用 end-to-end用戶端加密。這可讓您對資料執行鍵值參考,同時確保資料永遠不會在 DynamoDB 相關日誌中顯示未加密。完成此操作的其中一個方法是使用 AWS DynamoDB SDK的資料庫加密,但這並非必要。如果您使用自己的解決方案,我們應該一律使用足夠安全的加密演算法。您不應使用非加密選項,例如雜湊,因為在大多數情況下,它們並不足夠安全。
如果您的主金鑰名稱很敏感,建議您
`sk`
改用`pk`
和 。這是一般最佳實務,讓您的分割區金鑰設計保持彈性。如果您擔心什麼是正確的選擇,請務必諮詢您的安全專家或 AWS 客戶團隊。