

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

# 安全性和存取控制
<a name="feature-store-security"></a>

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

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

 如需客戶受管金鑰的更多相關資訊，請參閱中的[客戶受管金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys)。如需 的詳細資訊 AWS KMS，請參閱 [AWS KMS](https://aws.amazon.com/kms/)。

## 使用 Amazon SageMaker Feature Store 的 AWS KMS 許可
<a name="feature-store-kms-cmk-permissions"></a>

 靜態加密可在 AWS KMS 客戶受管金鑰下保護特徵商店。根據預設，它使用 [AWS OnlineStore 的 擁有客戶受管金鑰，以及 OfflineStore 的 AWS 受管客戶受管金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk)。特徵商店支援在[客戶受理金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)下加密線上儲存或離線儲存的選項。您可以在建立線上或離線儲存時為特徵商店選取客戶受管金鑰，而且每個儲存的金鑰可能不同。

 特徵商店僅支援[對稱客戶受管金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-concepts.html#symmetric-cmks)。您無法使用[非對稱客戶受管金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-concepts.html#asymmetric-cmks)來加密線上儲存或離線儲存中的資料。如需判斷客戶受管金鑰為對稱或非對稱的說明，請參閱[識別對稱和非對稱客戶受管金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/find-symm-asymm.html)。

使用客戶受管金鑰時，您可以利用下列功能：
+  您可以建立和管理客戶受管金鑰，包括設定[金鑰政策](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)、[IAM 政策](https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html)和[授予](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)來控制對客戶受管金鑰的存取。您可以[啟用和停用](https://docs.aws.amazon.com/kms/latest/developerguide/enabling-keys.html)客戶受管金鑰、啟用和停用[自動金鑰輪換](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html)，以及於不再使用時[刪除客戶受管金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html)。
+  您可以搭配[匯入的金鑰材料](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html)使用客戶自管金鑰，或是使用位於您所擁有及管理[自訂金鑰存放區](https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html)中的客戶自管金鑰。
+  您可以在 [AWS CloudTrail 日誌](https://docs.aws.amazon.com/kms/latest/developerguide/services-dynamodb.html#dynamodb-cmk-trail) AWS KMS 中檢查對 的 API 呼叫，以稽核線上或離線存放區的加密和解密。

您不需要為 AWS 擁有的客戶受管金鑰支付每月費用。客戶受管金鑰會針對每個 API AWS Key Management Service 呼叫[產生費用，](https://aws.amazon.com/kms/pricing/)而配額會套用至每個客戶受管金鑰。

## 授權為線上儲存使用客戶受管金鑰
<a name="feature-store-authorizing-cmk-online-store"></a>

 如果您使用[客戶受管金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)來保護您的線上儲存，該客戶受管金鑰的政策必須授予特徵商店代您使用該金鑰的許可。您可以完全控制客戶受管金鑰的政策和授予。

 Feature Store 不需要額外的授權，即可使用預設[AWS 擁有的 KMS 金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys)來保護您 AWS 帳戶中的線上或離線存放區。

### 客戶受管金鑰政策
<a name="feature-store-customer-managed-cmk-policy"></a>

 當您選取[客戶受管金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)來保護您的線上儲存時，特徵商店必須具有代表進行選擇的主體使用客戶受管金鑰的許可。該主體 (使用者或角色) 必須在客戶受管金鑰上擁有 Feature Store 需要的許可。您可以在[金鑰政策](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)、[IAM 政策](https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html)或[授予](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)中提供這些許可。至少，特徵商店在客戶受管金鑰上需要具備下列許可：
+  "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](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-via-service) 條件金鑰只會在請求來自特徵商店，且其是代替政策陳述式中列出的主體時，才會允許許可。這些主體無法直接呼叫這些操作。`kms:ViaService` 的值應為 `sagemaker.*.amazonaws.com`。
**注意**  
 `kms:ViaService` 條件金鑰只能用於線上存放區客戶受管 AWS KMS 金鑰，不能用於離線存放區。如果您將此特殊條件新增至客戶受管金鑰，並對線上和離線存放區使用相同的 AWS KMS 金鑰，則 API `CreateFeatureGroup`操作將會失敗。
+  給予客戶受管金鑰管理員對客戶受管金鑰的唯讀存取許可以及撤銷授予的許可，包括特徵商店用來保護您資料的授予。

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

------
#### [ JSON ]

****  

```
{"Id": "key-policy-feature-store",
   "Version":"2012-10-17",		 	 	 
   "Statement": [
     {"Sid" : "Allow access through Amazon SageMaker AI Feature Store for all principals in the account that are authorized to use  Amazon SageMaker AI 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:ListGrants"
       ],
       "Resource": "*",      
       "Condition": {"StringLike": {"kms:ViaService" : "sagemaker.*.amazonaws.com"
          }
       }
     },
     {"Sid" : "Allow listing aliases",
       "Effect": "Allow",
       "Principal": {"AWS": "arn:aws:iam::111122223333:user/featurestore-user"},
       "Action": "kms:ListAliases",
       "Resource": "*"
     },
     {"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::111122223333:root"
        },
        "Action": "kms:*",
        "Resource": "*"
     }
   ]
 }
```

------

## 使用授予來授權特徵商店
<a name="feature-store-using-grants-authorize"></a>

 除了金鑰政策外，特徵商店會使用授予在客戶受管金鑰上設定許可。若要檢視您的帳戶中客戶受管金鑰的授予，請使用 `[ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html)` 操作。特徵商店不需要授予或任何其他許可，就能使用 [AWS 擁有的客戶受管金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk)來保護您的線上儲存。

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

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

 金鑰政策也會允許帳戶[撤銷客戶受管金鑰上的授予](https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html)。不過，如果您撤銷作用中加密線上儲存的授予，特徵商店將無法保護和維護該儲存。

## 監控特徵商店與 的互動 AWS KMS
<a name="feature-store-monitoring-kms-interaction"></a>

 如果您使用[客戶受管金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)來保護線上或離線存放區，您可以使用 AWS CloudTrail 日誌來追蹤特徵存放區代表您傳送到 AWS KMS 的請求。

## 存取線上儲存中的資料
<a name="feature-store-accessing-data-online-store"></a>

 **所有 DataPlane 操作 (Put、Get、DeleteRecord)** 的**呼叫方 (使用者或角色)** 必須對客戶受管金鑰具有以下許可：

```
"kms:Decrypt"
```

## 授權為離線儲存使用客戶受管金鑰
<a name="feature-store-authorizing-use-cmk-offline-store"></a>

 作為參數傳遞給 `createFeatureGroup` 的 **roleArn** 必須對 OfflineStore KmsKeyId 具有以下許可：

```
"kms:GenerateDataKey"
```

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

**重要**  
您可以在建立功能群組時，指定 AWS KMS 加密金鑰來加密用於離線功能存放區的 Amazon S3 位置。如果未指定 AWS KMS 加密金鑰，預設會使用 AWS KMS 金鑰加密所有靜態資料。透過定義 SSE 的[儲存貯體層級金鑰](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-key.html)，您可以降低高達 99% 的 AWS KMS 請求成本。