安全性和存取控制 - Amazon SageMaker

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

安全性和存取控制

Amazon SageMaker Feature Store 可讓您建立兩種類型的商店:線上商店或離線商店。線上儲存用於低延遲的即時推論使用案例,而離線儲存則用於訓練和批次推論使用案例。當您為線上或離線使用建立功能群組時,您可以提供 AWS Key Management Service 客戶受管金鑰,以加密所有靜態資料。如果您未提供 AWS KMS 金鑰,我們會確保使用 AWS 擁有的 AWS KMS 金鑰或 AWS 受管 AWS KMS 金鑰在伺服器端加密您的資料。建立功能群組時,您可以選取儲存類型,並選擇性地提供 AWS KMS 金鑰來加密資料,然後您可以呼叫 APIs進行資料管理,例如 PutRecordGetRecordDeleteRecord

特徵商店可讓您授與或拒絕特徵群組層級的個人存取權,並允許跨帳戶存取特徵商店。例如,您可以設定開發者帳戶以存取離線儲存,從而進行模型訓練和探索,而這些開發者帳戶沒有生產帳戶的寫入權限。您可以設定生產帳戶以存取線上儲存和離線儲存。Feature Store 使用唯一的客戶 AWS KMS 金鑰進行離線和線上儲存靜態資料加密。透過 API和 AWS KMS 金鑰存取啟用存取控制。您也可以建立特徵群組層級的存取控制。

如需客戶受管金鑰的更多相關資訊,請參閱中的客戶受管金鑰。如需 的詳細資訊 AWS KMS,請參閱 AWS KMS

使用 Amazon SageMaker Feature Store 的 AWS KMS 許可

靜態加密可在 AWS KMS 客戶受管金鑰下保護 Feature Store。根據預設,它會使用 AWS 的 OnlineStore擁有客戶受管金鑰,以及 的 AWS 受管客戶受管金鑰 OfflineStore。特徵商店支援在客戶受理金鑰下加密線上儲存或離線儲存的選項。您可以在建立線上或離線儲存時為特徵商店選取客戶受管金鑰,而且每個儲存的金鑰可能不同。

特徵商店僅支援對稱客戶受管金鑰。您無法使用非對稱客戶受管金鑰來加密線上儲存或離線儲存中的資料。如需判斷客戶受管金鑰為對稱或非對稱的說明,請參閱識別對稱和非對稱客戶受管金鑰

使用客戶受管金鑰時,您可以利用下列功能:

您不需要為 AWS 擁有的客戶受管金鑰支付月費。客戶受管金鑰會針對每個API呼叫產生費用,而 AWS Key Management Service 配額會套用至每個客戶受管金鑰。

授權為線上儲存使用客戶受管金鑰

如果您使用客戶受管金鑰來保護您的線上儲存,該客戶受管金鑰的政策必須授予特徵商店代您使用該金鑰的許可。您可以完全控制客戶受管金鑰的政策和授予。

Feature Store 不需要額外的授權,即可使用預設AWS 擁有的KMS金鑰來保護您 AWS 帳戶中的線上或離線商店。

客戶受管金鑰政策

當您選取客戶受管金鑰來保護您的線上儲存時,特徵商店必須具有代表進行選擇的主體使用客戶受管金鑰的許可。該主體 (使用者或角色) 必須在客戶受管金鑰上擁有 Feature Store 需要的許可。您可以在金鑰政策 IAM政策 授予 中提供這些許可。至少,特徵商店在客戶受管金鑰上需要具備下列許可:

  • "kms:Encrypt"、"kms:Decrypt"、"kms:DescribeKey"、"kms:CreateGrant"、"kms:RetireGrant"、"kms:ReEncryptFrom"、"kms:ReEncryptTo"、"kms:GenerateDataKey"、"kms:ListAliases"、"kms:ListGrants"、"kms:RevokeGrant"

例如,以下範例金鑰政策只會提供必要許可。政策具有下列效果:

  • 允許特徵商店在密碼編譯操作中使用客戶受管金鑰及建立授予,但只有在其代替具備使用特徵商店許可帳戶中的主體時才能進行。如果政策陳述式中指定的主體沒有使用 Feature Store 的許可,呼叫便會失敗,即使呼叫是來自 Feature Store 服務也一樣。

  • kms:ViaService 條件索引鍵僅在請求來自 FeatureStore 政策陳述式中列出的主體時允許許可。這些委託人無法直接呼叫這些操作。kms:ViaService 的值應為 sagemaker.*.amazonaws.com

    注意

    kms:ViaService 條件金鑰只能用於線上商店客戶受管 AWS KMS 金鑰,且無法用於離線商店。如果您將此特殊條件新增至客戶受管金鑰,並在線上和離線存放區使用相同的 AWS KMS 金鑰,則操作會失敗CreateFeatureGroupAPI。

  • 給予客戶受管金鑰管理員對客戶受管金鑰的唯讀存取許可以及撤銷授予的許可,包括特徵商店用來保護您資料的授予。

使用範例金鑰政策之前,請將範例主體取代為您 AWS 帳戶中的實際主體。

{"Id": "key-policy-feature-store", "Version":"2012-10-17", "Statement": [ {"Sid" : "Allow access through Amazon SageMaker Feature Store for all principals in the account that are authorized to use Amazon SageMaker Feature Store", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:user/featurestore-user"}, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:DescribeKey", "kms:CreateGrant", "kms:RetireGrant", "kms:ReEncryptFrom", "kms:ReEncryptTo", "kms:GenerateDataKey", "kms:ListAliases", "kms:ListGrants" ], "Resource": "*", "Condition": {"StringLike": {"kms:ViaService" : "sagemaker.*.amazonaws.com" } } }, {"Sid": "Allow administrators to view the customer managed key and revoke grants", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:role/featurestore-admin" }, "Action": [ "kms:Describe*", "kms:Get*", "kms:List*", "kms:RevokeGrant" ], "Resource": "*" }, {"Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::123456789:root" }, "Action": "kms:*", "Resource": "*" } ] }

使用授予來授權特徵商店

除了金鑰政策外,特徵商店會使用授予在客戶受管金鑰上設定許可。若要檢視您的帳戶中客戶受管金鑰的授予,請使用 ListGrants 操作。特徵商店不需要授予或任何其他許可,就能使用 AWS 擁有的客戶受管金鑰來保護您的線上儲存。

特徵商店在執行背景系統維護和持續資料保護任務時使用授與許可。

每項授予都是特定於一個線上儲存。如果帳戶包含使用同一個客戶受管金鑰加密的多個儲存,則每個 FeatureGroup 使用相同客戶受管金鑰進行唯一授權。

金鑰政策也會允許帳戶撤銷客戶受管金鑰上的授予。不過,如果您撤銷作用中加密線上儲存的授予,特徵商店將無法保護和維護該儲存。

監控特徵存放區與 的互動 AWS KMS

如果您使用客戶受管金鑰來保護線上或離線存放區,則可以使用 AWS CloudTrail 日誌來追蹤 Feature Store AWS KMS 代表您傳送給您的請求。

存取線上儲存中的資料

呼叫者 (使用者或角色)ALL DataPlane 操作 (Put、Get DeleteRecord) 的許可必須低於客戶受管金鑰:

"kms:Decrypt"

授權為離線儲存使用客戶受管金鑰

作為 參數傳遞至 roleArn的 必須createFeatureGroup具有以下 許可 OfflineStore KmsKeyId:

"kms:GenerateDataKey"
注意

僅當未指定 kms:ViaService 條件時,線上儲存的金鑰政策也適用於離線儲存。

重要

您可以在建立功能群組時指定 AWS KMS 加密金鑰,以加密用於離線功能存放區的 Amazon S3 位置。如果未指定 AWS KMS 加密金鑰,我們預設會使用 AWS KMS 金鑰加密所有靜態資料。透過定義 的儲存貯體層級金鑰SSE,您可以降低高達 99% 的 AWS KMS 請求成本。