中的資料保護 AWS AppFabric - AWS AppFabric

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

中的資料保護 AWS AppFabric

AWS 共同責任模型適用於 中的資料保護 AWS AppFabric。如此模型所述, AWS 負責保護執行所有 的全域基礎設施 AWS 雲端。您負責維護在此基礎設施上託管內容的控制權。您也同時負責所使用 AWS 服務 的安全組態和管理任務。如需資料隱私權的詳細資訊,請參閱資料隱私權。 FAQ如需歐洲資料保護的相關資訊,請參閱AWS 安全部落格上的AWS 共同責任模型和GDPR部落格文章。

基於資料保護目的,我們建議您保護 AWS 帳戶 登入資料,並使用 AWS IAM Identity Center 或 AWS Identity and Access Management () 設定個別使用者IAM。如此一來,每個使用者都只會獲得授與完成其任務所必須的許可。我們也建議您採用下列方式保護資料:

  • 對每個帳戶使用多重驗證 (MFA)。

  • 使用 SSL/TLS 與 AWS 資源通訊。我們需要 TLS 1.2 和 建議 TLS 1.3。

  • 使用 設定 API 和使用者活動記錄 AWS CloudTrail。如需有關使用 CloudTrail 線索擷取 AWS 活動的資訊,請參閱AWS CloudTrail 《 使用者指南》中的使用 CloudTrail 線索

  • 使用 AWS 加密解決方案,以及其中的所有預設安全控制 AWS 服務。

  • 使用進階的受管安全服務 (例如 Amazon Macie),協助探索和保護儲存在 Amazon S3 的敏感資料。

  • 如果您在 AWS 透過命令列界面或 FIPS 存取 時需要 140-3 個經過驗證的密碼編譯模組API,請使用 FIPS端點。如需可用FIPS端點的詳細資訊,請參閱聯邦資訊處理標準 (FIPS) 140-3

我們強烈建議您絕對不要將客戶的電子郵件地址等機密或敏感資訊,放在標籤或自由格式的文字欄位中,例如名稱欄位。這包括當您使用 AppFabric 或其他 AWS 服務 使用 主控台API AWS CLI、 或 時 AWS SDKs。您在標籤或自由格式文字欄位中輸入的任何資料都可能用於計費或診斷日誌。如果您將 URL提供給外部伺服器,強烈建議您不要在 中包含登入資料資訊URL,以驗證您對該伺服器的請求。

注意

如需適用於 的資料保護的詳細資訊, AppFabric 請參閱 以取得安全性中的資料處理 AppFabric

靜態加密

AWS AppFabric 支援靜態加密,這是一種伺服器端加密功能,可在 AppFabric應用程式套件保留至磁碟時透明加密所有與應用程式套件相關的資料,並在您存取資料時解密這些資料。根據預設, 會使用 AWS 擁有的金鑰 from AWS Key Management Service () AppFabric 加密您的資料AWS KMS。您也可以選擇使用自己的客戶受管金鑰來加密資料 AWS KMS。

當您刪除應用程式套件時,其所有中繼資料都會永久刪除。

傳輸中加密

設定應用程式套件時,您可以選擇 AWS 擁有的金鑰 或客戶受管金鑰。收集和標準化稽核日誌擷取的資料時, 會將資料暫時 AppFabric 存放在中繼 Amazon Simple Storage Service (Amazon S3) 儲存貯體中,並使用此金鑰對其進行加密。此中繼儲存貯體會在 30 天後使用儲存貯體生命週期政策刪除。

AppFabric 使用 TLS 1.2 保護傳輸中的所有資料,並使用 AWS Signature V4 AWS 服務 簽署 的API請求。

金鑰管理

AppFabric 支援使用 AWS 擁有的金鑰 或客戶受管金鑰加密資料。我們建議您使用客戶受管金鑰,因為它可讓您完全控制加密的資料。當您選擇客戶受管金鑰時, 會將資源政策 AppFabric 連接至客戶受管金鑰,以授予其存取客戶受管金鑰的權限。

客戶受管金鑰

若要建立客戶受管金鑰,請遵循 AWS KMS 開發人員指南中的建立對稱加密KMS金鑰的步驟。

金鑰政策

金鑰政策控制對客戶受管金鑰的存取。每個客戶受管金鑰都必須只有一個金鑰政策,其中包含決定誰可以使用金鑰及其使用方式的陳述式。在建立客戶受管金鑰時,可以指定金鑰政策。如需建立金鑰政策的相關資訊,請參閱《 AWS KMS 開發人員指南》中的建立金鑰政策

若要搭配 使用客戶受管金鑰 AppFabric,建立 資源 AppFabric的 AWS Identity and Access Management (IAM) 使用者或角色必須具有使用客戶受管金鑰的許可。建議您建立只與 搭配使用的金鑰, AppFabric 並將 AppFabric 使用者新增為金鑰的使用者。此方法會限制對資料的存取範圍。您的使用者所需的許可如下:

  • kms:DescribeKey

  • kms:CreateGrant

  • kms:GenerateDataKey

  • kms:Decrypt

AWS KMS 主控台會引導您建立具有適當金鑰政策的金鑰。如需有關金鑰政策的詳細資訊,請參閱《 AWS KMS 開發人員指南》中的 中的金鑰政策 AWS KMS

以下是允許 的範例金鑰政策:

  • 金鑰的完整 AWS 帳戶根使用者 控制。

  • 允許使用者使用 AppFabric 搭配您的客戶受管金鑰 AppFabric。

  • 在 中設定應用程式套件的金鑰政策us-east-1

{ "Id": "key-consolepolicy-3", "Version": "2012-10-17", "Statement": [ { "Sid": "Allow access for key administrators", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:root"}, "Action": ["kms:*"], "Resource": "arn:aws:kms:us-east-1:111122223333:key/key_ID" }, { "Sid": "Allow read-only access to key metadata to the account", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:root"}, "Action": [ "kms:Describe*", "kms:Get*", "kms:List*", "kms:RevokeGrant" ], "Resource": "*" }, { "Sid": "Allow access to principals authorized to use AWS AppFabric", "Effect": "Allow", "Principal": {"AWS": "IAM-role/user-creating-appfabric-resources"}, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:DescribeKey", "kms:CreateGrant", "kms:ListAliases" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "appfabric.us-east-1.amazonaws.com", "kms:CallerAccount": "111122223333" } } } ] }

如何在 中使用 AppFabric 授予 AWS KMS

AppFabric 需要授予才能使用您的客戶受管金鑰。如需詳細資訊,請參閱《 AWS KMS 開發人員指南》中的在 中授予 AWS KMS

當您建立應用程式套件時, 會透過傳送CreateGrant請求至 來代表您 AppFabric 建立授予 AWS KMS。中的授予 AWS KMS 用於授予 AppFabric 存取客戶帳戶中的 AWS KMS 金鑰。 AppFabric 要求授予使用客戶受管金鑰進行下列內部操作:

  • GenerateDataKey請求傳送至 AWS KMS ,以產生由客戶受管金鑰加密的資料金鑰。

  • Decrypt請求傳送至 AWS KMS 以解密加密的資料金鑰,以便它們可用於加密您的資料,以及解密傳輸中的應用程式存取字符。

  • 傳送Encrypt請求至 AWS KMS ,以加密傳輸中的應用程式存取字符。

以下是授予的範例。

{ "KeyId": "arn:aws:kms:us-east-1:111122223333:key/ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "GrantId": "0ab0ac0d0b000f00ea00cc0a0e00fc00bce000c000f0000000c0bc0a0000aaafSAMPLE", "Name": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "CreationDate": "2022-10-11T20:35:39+00:00", "GranteePrincipal": "appfabric.us-east-1.amazonaws.com", "RetiringPrincipal": "appfabric.us-east-1.amazonaws.com", "IssuingAccount": "arn:aws:iam::111122223333:root", "Operations": [ "Decrypt", "Encrypt", "GenerateDataKey" ], "Constraints": { "EncryptionContextSubset": { "appBundleArn": "arn:aws:fabric:us-east-1:111122223333:appbundle/ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE" } } },

當您刪除應用程式套件時, AppFabric 退休人員會針對您的客戶受管金鑰發出授予。

監控 的加密金鑰 AppFabric

當您搭配 使用 AWS KMS 客戶受管金鑰時 AppFabric,您可以使用 AWS CloudTrail 日誌來追蹤 AppFabric 傳送至 的請求 AWS KMS。

以下是使用 AppFabric CreateGrant做為客戶受管金鑰時記錄 CloudTrail 的事件範例。

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIGDTESTANDEXAMPLE:SampleUser", "arn": "arn:aws:sts::111122223333:assumed-role/AssumedRole/SampleUser", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAIGDTESTANDEXAMPLE", "arn": "arn:aws:iam::111122223333:role/AssumedRole", "accountId": "111122223333", "userName": "SampleUser" }, "webIdFederationData": {}, "attributes": { "creationDate": "2023-04-28T14:01:33Z", "mfaAuthenticated": "false" } } }, "eventTime": "2023-04-28T14:05:48Z", "eventSource": "kms.amazonaws.com", "eventName": "CreateGrant", "awsRegion": "us-east-1", "sourceIPAddress": "appfabric.amazonaws.com", "userAgent": "appfabric.amazonaws.com", "requestParameters": { "granteePrincipal": "appfabric.us-east-1.amazonaws.com", "constraints": { "encryptionContextSubset": { "appBundleArn": "arn:aws:appfabric:us-east-1:111122223333:appbundle/ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE" } }, "keyId": "arn:aws:kms:us-east-1:111122223333:key/EXAMPLEID", "retiringPrincipal": "appfabric.us-east-1.amazonaws.com", "operations": [ "Encrypt", "Decrypt", "GenerateDataKey" ] }, "responseElements": { "grantId": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "keyId": "arn:aws:kms:us-east-1:111122223333:key/KEY_ID" }, "additionalEventData": { "grantId": "0ab0ac0d0b000f00ea00cc0a0e00fc00bce000c000f0000000c0bc0a0000aaafSAMPLE" }, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": false, "resources": [ { "accountId": "AWS Internal", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-east-1:111122223333:key/key_ID" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "sharedEventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventCategory": "Management", "tlsDetails": { "tlsVersion": "TLSv1.3", "cipherSuite": "TLS_AES_256_GCM_SHA384", "clientProvidedHostHeader": "kms.us-east-1.amazonaws.com" } }