本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
變更效 Per AWS KMS formance Insights 的原則
Performance Insights 使用 AWS KMS key 加密機密資料。當您透過API或主控台啟用 Performance Insights 時,您可以執行下列其中一項作業:
-
選擇預設值 AWS 受管金鑰。
Amazon 將您的新 AWS 受管金鑰 資料庫執行個體RDS使用。Amazon 為您RDS創 AWS 受管金鑰 建一個 AWS 帳戶. 你 AWS 帳戶 有一個不同 AWS 受管金鑰 的 Amazon RDS 為每個 AWS 區域。
-
選擇客戶受管金鑰。
如果您指定客戶受管金鑰,則呼叫 Performance Insights 的帳戶中的使用者API需要KMS金鑰的
kms:Decrypt
和kms:GenerateDataKey
權限。您可以透過IAM原則設定這些權限。不過,我們建議您透過KMS金鑰原則來管理這些權限。如需詳細資訊,請參閱《AWS Key Management Service 開發人員指南》中的在 AWS KMS中使用金鑰政策。
下列範例顯示如何將陳述式新增至KMS金鑰原則。這些陳述式允許存取績效詳情。視您使用KMS金鑰的方式而定,您可能需要變更某些限制。在將陳述式新增至您的政策之前,請先移除所有註解。
{ "Version" : "2012-10-17", "Id" : "your-policy", "Statement" : [ { //This represents a statement that currently exists in your policy. } ...., //Starting here, add new statement to your policy for Performance Insights. //We recommend that you add one new statement for every RDS instance { "Sid" : "Allow viewing RDS Performance Insights", "Effect": "Allow", "Principal": { "AWS": [ //One or more principals allowed to access Performance Insights "arn:aws:iam::
444455556666
:role/Role1
" ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition" : { "StringEquals" : { //Restrict access to only RDS APIs (including Performance Insights). //Replaceregion
with your AWS Region. //For example, specify us-west-2. "kms:ViaService" : "rds.region
.amazonaws.com" }, "ForAnyValue:StringEquals": { //Restrict access to only data encrypted by Performance Insights. "kms:EncryptionContext:aws:pi:service": "rds", "kms:EncryptionContext:service": "pi", //Restrict access to a specific RDS instance. //The value is a DbiResourceId. "kms:EncryptionContext:aws:rds:db-id": "db-AAAAABBBBBCCCCDDDDDEEEEE
" } } }
Performance Insights 如何使用 AWS KMS 客戶管理的金鑰
Performance Insights 使用客戶壽館金鑰來加密敏感資料。當您開啟 Performance Insights 時,您可以透過API. AWS KMS Performance Insights 會建立此金鑰的KMS權限。它會使用金鑰並執行必要的操作來處理敏感資料。敏感資料包括使用者、資料庫、應用程式和SQL查詢文字等欄位。Performance Insights 可確保靜態資料和傳輸中資料保持加密狀態。
Performance Insights 如何IAM搭配使用 AWS KMS
IAM授予特定的權限APIs。Performance Insights 具有下列公開項目APIs,您可以使用IAM原則來限制這些公用:
DescribeDimensionKeys
GetDimensionKeyDetails
GetResourceMetadata
GetResourceMetrics
ListAvailableResourceDimensions
ListAvailableResourceMetrics
您可以使用以下API請求來獲取敏感數據。
DescribeDimensionKeys
GetDimensionKeyDetails
GetResourceMetrics
當您使用取API得敏感資料時,Performance Insights 會利用呼叫者的認證。此檢查可確保敏感資料的存取權限於可存取KMS金鑰的使用者。
呼叫這些項目時APIs,您需要API透過IAM原則和權限呼叫透過 AWS KMS 金鑰原則呼叫kms:decrypt
動作的權限。
GetResourceMetrics
API可以返回敏感和非敏感數據。請求參數會決定回應是否應包含敏感資料。當要求在篩選器或 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 }