本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
加密靜態 Neptune 資源
AWS 建議採用Data-at-rest加密。如需詳細資訊,請參閱Data-at-Rest和Data-in-Transit加密。當您建立新的 Neptune 資料庫叢集或新的 Neptune 全域資料庫時,會在 AWS 主控台中強制執行加密。這可提供多一層的資料保護。它可保護您的資料免於未經授權存取基礎儲存體,並協助滿足data-at-rest加密的合規要求。
若要管理用於加密和解密 Neptune 資源的金鑰,您可以使用 AWS Key Management Service (AWS KMS). AWS KMS combines 安全、高可用性的硬體和軟體,以提供針對雲端擴展的金鑰管理系統。使用 AWS KMS,您可以建立加密金鑰並定義控制如何使用這些金鑰的政策。 AWS KMS 支援 AWS CloudTrail,因此您可以稽核金鑰使用情況,以確認金鑰是否適當使用。
靜態時,所有相關的日誌、備份和快照都會針對任何加密的 Neptune 資料庫叢集進行加密。Neptune 加密不適用於匯出至 Amazon CloudWatch 的日誌。
Neptune 資源的加密
當您建立 Neptune 資料庫叢集或 Neptune 全域資料庫時,您可以提供加密 AWS KMS 金鑰的金鑰識別符。如果您未指定 AWS KMS 金鑰識別符,Neptune 會使用 區域中的預設 Amazon RDS 加密金鑰 (aws/rds)。 AWS KMS 會為您 AWS 帳戶中的每個區域建立預設加密金鑰。對於 Neptune 全域叢集,其中的 AWS KMS 金鑰數量將與 區域相同。
建立 Neptune 資源後,您無法變更該資源的加密金鑰。因此,請務必先判斷您的加密金鑰需求,再建立 Neptune 資源。如果需要不同的 AWS KMS 金鑰,您可以使用現有 Neptune 資料庫叢集的快照來建立具有不同 AWS KMS 金鑰的新金鑰 (請參閱 從資料庫叢集快照還原)。
您可以使用另一個帳戶的金鑰 Amazon Resource Name (ARN) 來加密 Neptune 資源。如果您使用擁有 AWS KMS 加密金鑰的相同 AWS 帳戶建立 Neptune 資源,則您傳遞的 AWS KMS 金鑰 ID 可以是 AWS KMS 金鑰別名,而不是金鑰的 ARN。
重要
如果 Neptune 無法存取 Neptune 資料庫叢集的加密金鑰 - 例如,當撤銷對金鑰的 Neptune 存取時 - 加密的叢集會進入終端狀態,而且只能從備份還原。強烈建議您一律為加密的 Neptune 資料庫叢集啟用備份,以防止資料庫中的加密資料遺失。
啟用加密時所需的金鑰許可
建立 Neptune 資料庫叢集的 IAM 使用者或角色必須至少具有下列 KMS 金鑰許可:
"kms:Encrypt""kms:Decrypt""kms:GenerateDataKey""kms:ReEncryptTo""kms:GenerateDataKeyWithoutPlaintext""kms:CreateGrant""kms:ReEncryptFrom""kms:DescribeKey"
以下是包含必要許可的金鑰政策範例 (適用於us-east-1區域):
此政策中的第一個聲明是選用的。它可讓您存取使用者的根主體。
第二個陳述式提供此角色所有必要 AWS KMS APIs的存取權,範圍縮小為 RDS 服務主體。
第三個陳述式會強制此金鑰無法由此角色用於任何其他 AWS 服務,以更加強安全性。
您還可以進一步限制 createGrant 許可範圍,方法為新增:
"Condition": { "Bool": { "kms:GrantIsForAWSResource": true } }
Neptune 加密的限制
Neptune 加密存在下列限制:
-
您無法將未加密的 Neptune 資料庫叢集轉換為已加密的叢集。您只能在 Neptune 資料庫叢集建立時為其啟用加密。不過,您可以將未加密的 Neptune 資料庫叢集快照還原至加密的 Neptune 資料庫叢集。若要這樣做,請在從未加密的 Neptune 資料庫叢集快照還原時指定 KMS 加密金鑰。
-
基於相容性原因,仍然可以透過 CLI 和 AWS SDKs 建立未加密的 Neptune 資料庫叢集。主控台僅允許建立加密的 Neptune 資料庫叢集。
-
您無法在相同的 Neptune 全域資料庫中混合加密和未加密的 Neptune 資料庫叢集。所有叢集都已加密,或所有叢集都未加密。這是在 Neptune 全域資料庫組態中強制執行的。