資料保護 AWS AppFabric - AWS AppFabric

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

資料保護 AWS AppFabric

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

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

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

  • 使用SSL/TLS與 AWS 資源溝通。我們需要 TLS 1.2 並推薦 TLS 1.3。

  • 使用設定API和使用者活動記錄 AWS CloudTrail。

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

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

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

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

注意

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

靜態加密

AWS AppFabric 支持靜態加密,這是一種服務器端加密功能,其中當應用程序包保存到磁盤時,將與應用程序包相關的所有數據 AppFabric透明地加密,並在訪問數據時對其進行解密。默認情況下,使用 AWS 擁有的金鑰 從 AWS Key Management Service (AWS KMS) AppFabric 加密您的數據。您也可以選擇使用您自己的客戶管理金鑰來加密資料 AWS KMS。

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

傳輸中加密

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

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

金鑰管理

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 用於授予對客戶帳戶中 AWS KMS 密鑰的 AppFabric 訪問權限。 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" } }