本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
變更 Database Insights AWS KMS 的政策
Database Insights 使用 AWS KMS key 加密敏感資料。當您透過 API 或主控台啟用 Database Insights 時,您可以執行下列其中一項操作:
-
選擇預設值 AWS 受管金鑰。
Amazon RDS 會將 AWS 受管金鑰 用於您的新資料庫執行個體。Amazon RDS 會為您的 AWS 帳戶建立 AWS 受管金鑰 。每個 AWS 受管金鑰 的 Amazon RDS AWS 帳戶 都有不同的 AWS 區域。
-
選擇客戶受管金鑰。
如果您指定客戶受管金鑰,您帳戶中呼叫 Database Insights API 的使用者需要 KMS 金鑰的
kms:Decrypt和kms:GenerateDataKey許可。您可以透過 IAM 政策設定這些許可。不過,我們建議您透過 KMS 金鑰政策來管理這些許可。如需詳細資訊,請參閱《AWS Key Management Service 開發人員指南》中的在 AWS KMS中使用金鑰政策。
範例
下列範例說明如何將陳述式新增至 KMS 金鑰政策。這些陳述式允許存取 Database Insights。視您使用 KMS 金鑰的方式而定,您可能想要變更某些限制。在將陳述式新增至您的政策之前,請先移除所有註解。
Database Insights 如何使用 AWS KMS 客戶受管金鑰
Database Insights 使用客戶受管金鑰來加密敏感資料。當您開啟 Database Insights 時,您可以透過 API 提供 AWS KMS 金鑰。Database Insights 會建立此金鑰的 AWS KMS 許可。它會使用金鑰並執行必要的操作來處理敏感資料。敏感資料包括使用者、資料庫、應用程式及 SQL 查詢文字等欄位。Database Insights 可確保資料在靜態和傳輸中都保持加密。
Database Insights IAM 如何使用 AWS KMS
IAM 會提供許可給特定 API。Database Insights 具有下列公APIs,您可以使用 IAM 政策加以限制:
DescribeDimensionKeysGetDimensionKeyDetailsGetResourceMetadataGetResourceMetricsListAvailableResourceDimensionsListAvailableResourceMetrics
您可以使用下列 API 請求來取得敏感資料。
DescribeDimensionKeysGetDimensionKeyDetailsGetResourceMetrics
當您使用 API 取得敏感資料時, Database Insights 會利用發起人的登入資料。此檢查可確保敏感資料的存取權限於可存取 KMS 金鑰的人。
呼叫這些 APIs時,您需要透過 IAM 政策呼叫 API 的許可,以及透過 AWS KMS 金鑰政策叫用 kms:decrypt動作的許可。
GetResourceMetrics API 可能會同時傳回敏感和非敏感資料。請求參數會決定回應是否應包含敏感資料。當請求的 filter 或 group-by 參數中包含敏感維度時,API 會傳回敏感資料。
如需有關可搭配 GetResourceMetrics API 使用之維度的詳細資訊,請參閱 DimensionGroup。
範例範例
以下範例會請求 db.user 群組的敏感資料:
POST / HTTP/1.1 Host: <Hostname> Accept-Encoding: identity X-Amz-Target: PerformanceInsightsv20180227.GetResourceMetrics Content-Type: application/x-amz-json-1.1 User-Agent: <UserAgentString> X-Amz-Date: <Date> Authorization: AWS4-HMAC-SHA256 Credential=<Credential>, SignedHeaders=<Headers>, Signature=<Signature> Content-Length: <PayloadSizeBytes> { "ServiceType": "RDS", "Identifier": "db-ABC1DEFGHIJKL2MNOPQRSTUV3W", "MetricQueries": [ { "Metric": "db.load.avg", "GroupBy": { "Group": "db.user", "Limit": 2 } } ], "StartTime": 1693872000, "EndTime": 1694044800, "PeriodInSeconds": 86400 }
範例
以下範例會請求 db.load.avg 指標的非敏感資料:
POST / HTTP/1.1 Host: <Hostname> Accept-Encoding: identity X-Amz-Target: PerformanceInsightsv20180227.GetResourceMetrics Content-Type: application/x-amz-json-1.1 User-Agent: <UserAgentString> X-Amz-Date: <Date> Authorization: AWS4-HMAC-SHA256 Credential=<Credential>, SignedHeaders=<Headers>, Signature=<Signature> Content-Length: <PayloadSizeBytes> { "ServiceType": "RDS", "Identifier": "db-ABC1DEFGHIJKL2MNOPQRSTUV3W", "MetricQueries": [ { "Metric": "db.load.avg" } ], "StartTime": 1693872000, "EndTime": 1694044800, "PeriodInSeconds": 86400 }