

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

# IAM Identity Center 中的資料保護
<a name="data-protection"></a>

 AWS [共同責任模型](https://aws.amazon.com/compliance/shared-responsibility-model/)適用於 IAM Identity Center AWS 中的資料保護。如此模型所述， AWS 負責保護執行所有雲端的 AWS 全球基礎設施。您負責維護在此基礎設施上託管內容的控制權。您也必須負責所使用 AWS 服務的安全組態和管理任務。如需有關資料隱私權的詳細資訊，請參閱[資料隱私權常見問答集](https://aws.amazon.com/compliance/data-privacy-faq/)。如需有關歐洲資料保護的相關資訊，請參閱 *AWS 安全部落格*上的 [AWS 共同責任模型和 GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) 部落格文章。

 建議您以下列方式保護您的資料：
+  搭配 IAM Identity Center 使用多重要素驗證 (MFA)。
+  使用 TLS 與 AWS 資源通訊。我們需要 TLS 1.2 並建議使用 TLS 1.3。
+  使用 設定 API 和使用者活動記錄 AWS CloudTrail。如需有關使用 CloudTrail 追蹤擷取 AWS 活動的資訊，請參閱*AWS CloudTrail 《 使用者指南*》中的[使用 CloudTrail 追蹤](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-trails.html)。
+  使用 AWS 加密解決方案，以及 服務中的所有 AWS 預設安全控制。

 我們強烈建議您絕對不要將機密或敏感資訊，例如客戶的電子郵件地址，放入標籤或任意格式的文字欄位中，例如**名稱**欄位。這包括當您使用 時 AWS IAM Identity Center，或使用 AWS 主控台、API AWS CLI或其他 服務時 AWS SDKs 。您在標籤或用於名稱的任意格式文字欄位中輸入的任何資料都可用於診斷日誌。

## 傳輸中加密
<a name="encryption-in-transit"></a>

 IAM Identity Center 透過使用 Transport Layer Security (TLS) 1.2 或 TLS 1.3 加密通訊協定自動加密所有網路間資料，保護傳輸中往返服務的資料。使用 Signature 第 [AWS 4 版演算法](https://docs.aws.amazon.com/general/latest/gr/sigv4_signing.html)簽署透過 IAM 驗證並傳送至 IAM Identity Center APIs、Identity Store API 或 OIDC API 的直接 HTTPS 請求，以建立安全連線。

## 資料隱私權
<a name="data-privacy"></a>

 透過 IAM Identity Center，您可以保留對組織資料的控制。只有在您使用 IAM Identity Center 啟用其他 AWS 服務，以及這些服務需要時，儲存在 IAM Identity Center 中的使用者和群組身分才會與其他 服務共用，例如[AWS 受管應用程式](https://docs.aws.amazon.com/singlesignon/latest/userguide/awsapps.html)。

 如需詳細資訊，請參閱[AWS 資料隱私權常見問答集](https://aws.amazon.com/compliance/data-privacy-faq/)。

## 資料保留
<a name="data-retention"></a>

 IAM Identity Center 會儲存您的資料，例如使用者和群組身分和中繼資料，直到您從服務中刪除它們為止。當您刪除 IAM Identity Center 執行個體時，它包含的資料也會一併刪除。

# 靜態加密
<a name="encryption-at-rest"></a>

 IAM Identity Center 提供加密，以使用下列金鑰類型保護靜態客戶資料：
+  **AWS 擁有的金鑰 （預設金鑰類型）** — IAM Identity Center 預設使用這些金鑰自動加密您的資料。您無法檢視、管理、稽核其使用方式，或將 AWS 擁有的金鑰用於其他用途。IAM Identity Center 會完全處理金鑰管理，以確保資料的安全，而無需採取任何動作。如需詳細資訊，請參閱[https://docs.aws.amazon.com/kms/latest/developerguide/overview.html](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)中的 [AWS 擁有的金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk)。
+  **客戶受管金鑰** — 在 IAM Identity Center 的組織執行個體中，您可以選擇對稱客戶受管金鑰，用於加密其餘人力資源身分資料，例如使用者和群組屬性。您可以建立、擁有和管理這些加密金鑰。您可以完全控制此層加密，因此能執行以下任務：
  +  建立和維護金鑰政策，以限制只有需要存取的 IAM 主體才能存取金鑰，例如 IAM Identity Center 和相同 AWS Organizations 及其管理員[AWS 受管應用程式](awsapps.md)。
  +  建立和維護存取金鑰的 IAM 政策，包括跨帳戶存取 
  +  啟用和停用金鑰政策 
  +  輪換金鑰密碼編譯資料 
  +  稽核需要金鑰存取的資料存取權 
  +  新增 標籤 
  +  建立金鑰別名 
  +  安排金鑰供刪除 

 若要了解如何在 IAM Identity Center 中實作客戶受管 KMS 金鑰，請參閱 [在 中實作客戶受管 KMS 金鑰 AWS IAM Identity Center](identity-center-customer-managed-keys.md)。如需客戶受管金鑰的詳細資訊，請參閱《 *AWS Key Management Service 開發人員指南*》中的[客戶受管金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)。

**注意**  
 IAM Identity Center 會使用 AWS 擁有的 KMS 金鑰自動啟用靜態加密，以免費保護客戶資料。不過，使用客戶受管金鑰時會產生 AWS KMS 費用。如需定價的詳細資訊，請參閱 [AWS Key Management Service 定價](https://aws.amazon.com/kms/pricing/)。

 **實作客戶受管金鑰的考量：**
+  **專用金鑰**：我們建議為每個 IAM Identity Center 執行個體建立新的專用客戶受管 KMS 金鑰，而不是重複使用現有的金鑰。這種方法提供更明確的職責分離、簡化存取控制管理，並使安全稽核更加直接。擁有專用金鑰也會透過限制金鑰變更對單一 IAM Identity Center 執行個體的影響來降低風險。
+  **跨多個 使用 IAM Identity Center AWS 區域**：如果您計劃將 IAM Identity Center 執行個體複寫至其他執行個體 AWS 區域，您將需要使用客戶受管 KMS 金鑰進行靜態加密。多區域 IAM Identity Center 不支援預設 AWS 擁有的 KMS 金鑰類型。如需詳細資訊，請參閱[跨多個 使用 IAM Identity Center AWS 區域](multi-region-iam-identity-center.md)。

**注意**  
 IAM Identity Center 使用[信封加密](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/concepts.html#envelope-encryption)來加密您的人力資源身分資料。您的 KMS 金鑰扮演包裝金鑰的角色，該金鑰會加密實際用來加密資料的資料金鑰。

如需 AWS KMS 的詳細資訊，請參閱[什麼是 AWS Key Management Service？](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)

## IAM Identity Center 加密內容
<a name="iam-identity-center-encryption-context"></a>

 [加密內容](https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html)是一組選用的非私密金鑰值對，其中包含有關資料的其他內容資訊。 AWS KMS 會使用加密內容作為額外的已驗證資料，以支援已驗證的加密。當您在加密資料的請求中包含加密內容時， 會將加密內容 AWS KMS 繫結至加密的資料。若要解密資料，您必須在請求中包含相同的加密內容。如需加密內容的詳細資訊，請參閱 [AWS KMS 開發人員指南](https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html)。

 IAM Identity Center 使用來自下列項目的加密內容金鑰：aws：sso：instance-arn、aws：identitystore：identitystore-arn 和 tenant-key-id。例如，下列加密內容可能會出現在 IAM Identity Center AWS KMS API 調用的 API 操作中。 [https://docs.aws.amazon.com/singlesignon/latest/APIReference/welcome.html](https://docs.aws.amazon.com/singlesignon/latest/APIReference/welcome.html)

```
"encryptionContext": {
    "tenant-key-id": "ssoins-1234567890abcdef",
    "aws:sso:instance-arn": "arn:aws:sso:::instance/ssoins-1234567890abcdef"
}
```

 以下加密內容可能會出現在 Identity Store AWS KMS API 調用的 API 操作中。 [https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/welcome.html](https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/welcome.html)

```
"encryptionContext": {
    "tenant-key-id": "12345678-1234-1234-1234-123456789012",
    "aws:identitystore:identitystore-arn": "arn:aws:identitystore::123456789012:identitystore/d-1234567890"
}
```

## 使用加密內容控制對客戶受管金鑰的存取
<a name="using-encryption-context-to-control-access-to-your-customer-managed-key"></a>

 您也可以在金鑰政策和 IAM 政策中，使用加密內容來控制對對稱客戶受管金鑰的存取。中的某些金鑰政策範本[進階 KMS 金鑰政策陳述式](advanced-kms-policy.md)包含此類條件，以確保金鑰僅用於特定的 IAM Identity Center 執行個體。

## 監控 IAM Identity Center 的加密金鑰
<a name="monitoring-your-encryption-keys-for-iam-identity-center"></a>

 當您搭配 IAM Identity Center 執行個體使用客戶受管 KMS 金鑰時，您可以使用 [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)或 [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) 來追蹤 IAM Identity Center 傳送的請求 AWS KMS。IAM Identity Center 呼叫的 KMS API 操作會列在 中[步驟 2：準備 KMS 金鑰政策陳述式](identity-center-customer-managed-keys.md#choose-kms-key-policy-statements)。這些 API 操作的 CloudTrail 事件包含加密內容，可讓您監控 IAM Identity Center 執行個體呼叫的 AWS KMS API 操作，以存取客戶受管金鑰加密的資料。

 AWS KMS API 操作的 CloudTrail 事件中的範例加密內容：

```
{
"requestParameters": {
        "encryptionAlgorithm": "SYMMETRIC_DEFAULT",
        "encryptionContext": {
            "aws:sso:instance-arn": "arn:aws:sso:::instance/ssoins-xxxxxxxxxxxxxxxx",
            "tenant-key-id": "ssoins-xxxxxxxxxxxxxxxx"
        }
    }
}
```

## AWS 受管應用程式的儲存、加密和刪除 IAM Identity Center 身分屬性
<a name="data-encryption-deletion-considerations"></a>

 您部署的一些 AWS 受管應用程式 AWS IAM Identity Center，例如 AWS Systems Manager 和 Amazon CodeCatalyst，會將來自 IAM Identity Center 的特定使用者和群組屬性存放在自己的資料存放區中。使用 IAM Identity Center 中的客戶受管 KMS 金鑰進行靜態加密，不會延伸至存放在 AWS 受管應用程式中的 IAM Identity Center 使用者和群組屬性。 AWS 受管應用程式對其存放的資料支援不同的加密方法。最後，當您在 IAM Identity Center 中刪除使用者和群組屬性時，這些 AWS 受管應用程式可能會繼續將此資訊儲存在 IAM Identity Center 的刪除之後。請參閱 AWS 受管應用程式的使用者指南，了解存放在應用程式中資料的加密和安全性。

# 在 中實作客戶受管 KMS 金鑰 AWS IAM Identity Center
<a name="identity-center-customer-managed-keys"></a>

客戶受管金鑰是您建立、擁有和管理的 AWS Key Management Service 金鑰。若要在 IAM Identity Center 中實作用於靜態加密的客戶受管 KMS AWS 金鑰，請遵循下列步驟：

**重要**  
 某些 AWS 受管應用程式無法與以客戶受管 KMS 金鑰設定的 AWS IAM Identity Center 搭配使用。請參閱 [AWS 可與 IAM Identity Center 搭配使用的 受管應用程式](awsapps-that-work-with-identity-center.md)。

1.  [步驟 1：識別組織的使用案例](#identify-use-cases) - 若要定義使用 KMS 金鑰的正確許可，您需要識別整個組織的相關使用案例。KMS 金鑰許可包含 KMS 金鑰政策陳述式和身分型政策，這些政策可共同運作，允許適當的 IAM 主體將 KMS 金鑰用於其特定使用案例。

1.  [步驟 2：準備 KMS 金鑰政策陳述式](#choose-kms-key-policy-statements) - 根據步驟 1 中識別的使用案例選擇相關的 KMS 金鑰政策陳述式範本，並填寫所需的識別符和 IAM 主體名稱。從基準 KMS 金鑰政策陳述式開始，如果您的安全政策需要，請依照進階 KMS 金鑰政策陳述式所述來精簡它們。

1.  [步驟 3：建立客戶受管 KMS 金鑰](#create-customer-managed-kms-key) - 在符合 IAM Identity Center 要求的 KMS 中建立 AWS KMS 金鑰，並將步驟 2 中準備的 KMS 金鑰政策陳述式新增至 KMS 金鑰政策。

1.  [步驟 4：設定 KMS 金鑰跨帳戶使用的 IAM 政策](#configure-iam-policies-kms-key) - 根據步驟 1 中識別的使用案例選擇相關的 IAM 政策陳述式範本，並填入金鑰 ARN 以準備使用。然後，允許每個特定使用案例的 IAM 主體跨帳戶使用 KMS 金鑰，方法是將備妥的 IAM 政策陳述式新增至主體的 IAM 政策。

1.  [步驟 5：在 IAM Identity Center 中設定 KMS 金鑰](#configure-kms-key-in-iam-identity-center) - 啟用 IAM Identity Center 執行個體中的客戶受管 KMS 金鑰，以將其用於靜態加密。

## 步驟 1：識別組織的使用案例
<a name="identify-use-cases"></a>

 在建立和設定您的客戶受管 KMS 金鑰之前，請識別您的使用案例並準備必要的 KMS 金鑰許可。如需 [AWS KMS 金鑰政策的詳細資訊，請參閱 KMS 開發人員指南](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)。

呼叫 IAM Identity Center 服務 APIs IAM 主體需要許可。例如，委派管理員有權透過許可集政策使用這些 APIs。使用客戶受管金鑰設定 IAM Identity Center 時，IAM 主體也必須具有透過 IAM Identity Center 服務 API 使用 KMS APIs許可。您可以在兩個位置定義這些 KMS API 許可：KMS 金鑰政策和與 IAM 主體相關聯的 IAM 政策。

KMS 金鑰許可包含：

1. 您在 中建立 KMS 金鑰期間在 KMS 金鑰上指定的 KMS 金鑰政策陳述式[步驟 3：建立客戶受管 KMS 金鑰](#create-customer-managed-kms-key)。

1. 在建立 KMS 金鑰[步驟 4：設定 KMS 金鑰跨帳戶使用的 IAM 政策](#configure-iam-policies-kms-key)後，您在 中指定的 IAM 主體的 IAM 政策陳述式。

 下表指定需要許可才能使用 KMS 金鑰的相關使用案例和 IAM 主體。


|  使用案例  |  需要許可才能使用 KMS 金鑰的 IAM 主體  |  必要/選用  | 
| --- | --- | --- | 
|  使用 AWS IAM Identity Center  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/singlesignon/latest/userguide/identity-center-customer-managed-keys.html)  | 必要 | 
|  搭配 IAM Identity Center 使用 AWS 受管應用程式  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/singlesignon/latest/userguide/identity-center-customer-managed-keys.html)  | 選用 | 
|  在已啟用的 AWS IAM Identity Center 執行個體 AWS Control Tower 上使用  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/singlesignon/latest/userguide/identity-center-customer-managed-keys.html)  | 選用 | 
|  使用 IAM Identity Center 的 SSO 至 Amazon EC2 AWS 執行個體  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/singlesignon/latest/userguide/identity-center-customer-managed-keys.html)  | 選用 | 
|  使用 IAM 主體呼叫 IAM Identity Center 服務 APIs 的任何其他使用案例，例如客戶受管應用程式、許可集佈建工作流程或 AWS Lambda 函數  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/singlesignon/latest/userguide/identity-center-customer-managed-keys.html)  | 選用 | 

**注意**  
 資料表中列出的多個 IAM 主體需要 AWS KMS API 許可。不過，為了保護您的 IAM Identity Center 中的使用者和群組資料，只有 IAM Identity Center 和 Identity Store 服務會直接呼叫 AWS KMS API。

## 步驟 2：準備 KMS 金鑰政策陳述式
<a name="choose-kms-key-policy-statements"></a>

識別與您組織相關的使用案例後，您可以準備對應的 KMS 金鑰政策陳述式。

1.  選擇符合您組織使用案例的 KMS 金鑰政策陳述式。從基準政策範本開始。如果您需要根據您的安全需求更具體的政策，您可以使用 中的範例修改政策陳述式[進階 KMS 金鑰政策陳述式](advanced-kms-policy.md)。如需此決策的指引，請參閱 [選擇基準與進階 KMS 金鑰政策陳述式的考量](considerations-for-customer-managed-kms-keys-advanced.md#kms-policy-considerations-advanced-vs-baseline)。此外， 中的每個基準區段[基準 KMS 金鑰和 IAM 政策陳述式](baseline-KMS-key-policy.md)都包含相關的考量。

1.  將相關政策複製到編輯器，並在 KMS 金鑰政策陳述式中插入所需的識別符和 IAM 主體名稱。如需尋找參考識別符值的說明，請參閱 [尋找所需識別符的位置](#find-the-required-identifiers)。

以下是每個使用案例的基準政策範本。使用 KMS AWS 金鑰只需要 IAM Identity Center 的第一組許可。我們建議您檢閱適用的小節，以取得其他使用案例特定資訊。
+  [使用 IAM Identity Center 的基準 KMS 金鑰政策陳述式 （必要）](baseline-KMS-key-policy.md#baseline-kms-key-policy-statements-for-use-of-iam-identity-center-mandatory) 
+  [使用 AWS 受管應用程式的基準 KMS 金鑰和 IAM 政策陳述式](baseline-KMS-key-policy.md#baseline-kms-key-policy-statements-for-use-of-aws-managed-applications) 
+  [使用 的基準 KMS 金鑰陳述式 AWS Control Tower](baseline-KMS-key-policy.md#baseline-kms-key-policy-statements-for-specific-use-cases) 
+  [將 IAM Identity Center 用於 Amazon EC2 執行個體的基準 KMS 金鑰和 IAM 政策陳述式](baseline-KMS-key-policy.md#baseline-kms-key-policy-statements-for-use-of-sso-to-amazon-ec2-windows-instances) 
+  [搭配 IAM Identity Center 使用自訂工作流程的基準 KMS 金鑰和 IAM 政策陳述式](baseline-KMS-key-policy.md#baseline-kms-key-policy-statements-for-use-of-custom-workflows-with-iam-identity-center) 

**重要**  
 修改 IAM Identity Center 已使用之金鑰的 KMS 金鑰政策時請小心。雖然 IAM Identity Center 會在您最初設定 KMS 金鑰時驗證加密和解密許可，但無法驗證後續的政策變更。不小心移除必要的許可可能會中斷 IAM Identity Center 的正常操作。如需疑難排解 IAM Identity Center 中客戶受管金鑰相關常見錯誤的指南，請參閱 [對 中的客戶受管金鑰進行故障診斷 AWS IAM Identity Center](cmk-related-errors.md)。

**注意**  
 IAM Identity Center 及其相關聯的 Identity Store 需要服務層級許可，才能使用您的客戶受管 KMS 金鑰。此需求延伸至使用服務憑證呼叫 IAM Identity Center 服務 APIs AWS 受管應用程式。對於使用[轉送存取工作階段](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html)呼叫 IAM Identity Center 服務 APIs 的其他使用案例，只有啟動 IAM 主體 （例如管理員） 需要 KMS 金鑰許可。值得注意的是，使用 AWS 存取入口網站和 AWS 受管應用程式的最終使用者不需要直接 KMS 金鑰許可，因為它們是透過個別的服務授予。

## 步驟 3：建立客戶受管 KMS 金鑰
<a name="create-customer-managed-kms-key"></a>

您可以使用 AWS 管理主控台或 KMS APIs AWS 建立客戶受管金鑰。建立金鑰時，請將您在步驟 2 中準備的 KMS 金鑰政策陳述式新增至 KMS 金鑰政策。如需詳細說明，包括預設 KMS 金鑰政策的指引，請參閱 [AWS Key Management Service 開發人員指南](https://docs.aws.amazon.com/kms/latest/developerguide/)。

金鑰必須符合下列要求：
+ KMS 金鑰必須與 IAM Identity Center 執行個體位於相同的 AWS 區域
+ 您可以選擇多區域或單一區域金鑰。不過，如果您計劃在多個 AWS 區域 中使用 IAM Identity Center，則必須建立多區域 KMS 金鑰。您無法將單一區域 KMS 金鑰轉換為多區域 KMS 金鑰，因此建議您從多區域 KMS 金鑰開始，除非您有使用單一區域 KMS 金鑰的特定需求。
+ KMS 金鑰必須是設定為「加密和解密」使用的對稱金鑰
+ KMS 金鑰必須與 IAM Identity Center 的組織執行個體位於相同的 AWS Organizations 管理帳戶中

**注意**  
如果您打算將此 KMS 金鑰複寫到要複寫 IAM Identity Center 的區域，建議您先完成本節中的設定，然後遵循 中的指引 [將 IAM Identity Center 複寫至其他區域](replicate-to-additional-region.md)

## 步驟 4：設定 KMS 金鑰跨帳戶使用的 IAM 政策
<a name="configure-iam-policies-kms-key"></a>

任何使用其他 AWS 帳戶 IAM Identity Center 服務 APIs 的 IAM 主體，例如 IAM Identity Center 委派管理員，也需要允許透過這些 APIs 使用 KMS 金鑰的 IAM 政策陳述式。

對於步驟 1 中識別的每個使用案例：

1. 在基準 KMS 金鑰和 IAM 政策陳述式中尋找相關的 IAM 政策陳述式範本。

1. 將範本複製到編輯器並填入金鑰 ARN，現在可在步驟 3 中建立 KMS 金鑰後使用。如需尋找金鑰 ARN 值的說明，請參閱 [尋找所需識別符的位置](#find-the-required-identifiers)。

1.  在 中 AWS 管理主控台，找到與使用案例相關聯的 IAM 主體的 IAM 政策。此政策的位置會根據使用案例和授予存取權的方式而有所不同。
   + 對於直接在 IAM 中授予的存取，您可以找到 IAM 主體，例如 IAM 主控台中的 IAM 角色。
   + 對於透過 IAM Identity Center 授予的存取，您可以在 IAM Identity Center 主控台中找到相關的許可集。

1. 將使用案例特定的 IAM 政策陳述式新增至 IAM 角色，並儲存變更。

**注意**  
此處所述的 IAM 政策是以身分為基礎的政策。雖然這類政策可以連接到 IAM 使用者、群組和角色，但我們建議您盡可能使用 IAM 角色。如需 IAM 角色與 IAM 使用者的詳細資訊，請參閱 IAM 使用者指南。

### 某些 AWS 受管應用程式中的其他組態
<a name="additional-config-in-some-aws-apps"></a>

有些 AWS 受管應用程式會要求您設定服務角色，以允許應用程式使用 IAM Identity Center 服務 APIs。如果您的組織搭配 IAM Identity Center 使用 AWS 受管應用程式，請為每個部署的應用程式完成以下步驟：

1. 請參閱應用程式的使用者指南，確認是否已更新許可，以包含搭配 IAM Identity Center 使用應用程式的 KMS 金鑰相關許可。

1. 若是如此，請依照應用程式使用者指南的指示更新許可，以避免中斷應用程式的操作。

**注意**  
 如果您不確定 AWS 受管應用程式是否使用這些許可，建議您檢查所有部署受 AWS 管應用程式的使用者指南。您只需要為每個需要組態的應用程式執行一次此組態。

## 步驟 5：在 IAM Identity Center 中設定 KMS 金鑰
<a name="configure-kms-key-in-iam-identity-center"></a>

**重要**  
繼續此步驟之前：  
確認您的 AWS 受管應用程式與客戶受管 KMS 金鑰相容。如需相容應用程式的清單，請參閱[AWS 可與 IAM Identity Center 搭配使用的受管應用程式](https://docs.aws.amazon.com/singlesignon/latest/userguide/awsapps-that-work-with-identity-center.html)。如果您有不相容的應用程式，請勿繼續。
設定使用 KMS 金鑰的必要許可。如果沒有適當的許可，此步驟可能會失敗或中斷 IAM Identity Center 管理、使用 AWS 受管應用程式，以及其他需要 KMS 金鑰許可的使用案例。如需詳細資訊，請參閱[步驟 1：識別組織的使用案例](#identify-use-cases)。
確保使用 IAM 角色呼叫 IAM Identity Center 服務 APIs 的 AWS 受管應用程式和客戶受管應用程式的許可，也允許透過 IAM Identity Center 服務 APIs 使用 KMS 金鑰。有些 AWS 受管應用程式會要求您設定許可，例如 服務角色，以使用這些 APIs。請參閱每個已部署 AWS 受管應用程式的使用者指南，以確認是否需要新增特定的 KMS 金鑰許可。

### 在啟用 IAM Identity Center 的新組織執行個體時指定 KMS 金鑰
<a name="specify-kms-key-new-instance"></a>

啟用 IAM Identity Center 的新組織執行個體時，您可以在設定期間指定客戶受管 KMS 金鑰。這可確保執行個體從一開始就使用您的金鑰進行靜態加密。開始之前，請參閱 [客戶受管 KMS 金鑰和進階 KMS 金鑰政策的考量](considerations-for-customer-managed-kms-keys-advanced.md)。

1. 在**啟用 IAM Identity Center** 頁面上，展開**靜態加密**區段。

1. 選擇 **Manage Encryption** (管理加密)。

1. 選擇**客戶受管金鑰**。

1. 對於 **KMS 金鑰**，請執行下列其中一項操作：

   1. **從 KMS 金鑰中選擇選取**，然後從下拉式清單中選取您建立的金鑰。

   1. 選擇**輸入 KMS 金鑰 ARN**，然後輸入金鑰的完整 ARN。

1. 選擇**儲存**。

1. 選擇**啟用**以完成設定。

如需詳細資訊，請參閱[啟用 IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/enable-identity-center.html)。

### 變更 IAM Identity Center 現有組織執行個體的金鑰組態
<a name="change-existing-instance-kms"></a>

您可以隨時將客戶受管 KMS 金鑰變更為另一個金鑰，或切換至 擁有的 AWS 金鑰。

------
#### [ Console ]

 **若要變更 KMS 金鑰組態** 

1. 開啟位於 https：//[https://console.aws.amazon.com/singlesignon/ 的 IAM Identity Center ](https://console.aws.amazon.com/singlesignon/)主控台。

1. 在導覽窗格中，選擇**設定**。

1. 前往**其他設定**分頁。

1. 選擇**管理加密**。

1. 選擇下列其中一項：

   1. **客戶受管金鑰** - 從下拉式清單中選取不同的客戶受管金鑰，或輸入新的金鑰 ARN。

   1. **AWS 擁有的金鑰** - 切換到預設加密選項。

1. 選擇**儲存**。

------
#### [ AWS CLI ]

 **若要變更 IAM Identity Center 的現有組織執行個體，以使用 KMS 客戶受管金鑰** 

```
aws sso-admin update-instance \
    --instance-arn arn:aws:sso:::instance/ssoins-1234567890abcdef \
    --encryption-configuration \
        KeyType=CUSTOMER_MANAGED_KEY,KmsKeyArn=arn:aws:kms:us-east-1:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab
```

 **若要將 IAM Identity Center 的現有組織執行個體變更為使用 AWS 擁有的金鑰** 

```
aws sso-admin update-instance \
    --instance-arn arn:aws:sso:::instance/ssoins-1234567890abcdef \
    --encryption-configuration KeyType=AWS_OWNED_KMS_KEY
```

------

 **客戶受管金鑰考量** 
+ 更新 IAM Identity Center 操作的 KMS 金鑰設定不會影響 IAM Identity Center 中的作用中使用者工作階段。在此過程中，您可以繼續使用 AWS 存取入口網站、IAM Identity Center 主控台和 IAM Identity Center APIs。
+ 切換到新的 KMS 金鑰時，IAM Identity Center 會驗證是否可以成功地使用該金鑰進行加密和解密。如果您在設定金鑰政策或 IAM 政策期間發生錯誤，主控台會顯示解釋性錯誤訊息，而先前的 KMS 金鑰將保留使用中。
+ 預設的年度 KMS 金鑰輪換會自動發生。如需[金鑰輪換](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html)、[監控 AWS KMS 金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/monitoring-overview.html)和[控制金鑰刪除存取](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys-adding-permission.html)等主題的資訊，請參閱 [AWS KMS 開發人員指南](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)。

**重要**  
 如果 IAM Identity Center 執行個體使用的客戶受管 KMS 金鑰因 KMS 金鑰政策不正確而遭到刪除、停用或無法存取，您的人力資源使用者和 IAM Identity Center 管理員將無法使用 IAM Identity Center。視情況而定，存取的遺失可以是暫時性 （可以更正金鑰政策） 或永久 （無法還原已刪除的金鑰）。我們建議您[限制對關鍵操作的存取](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys-adding-permission.html)，例如刪除或停用 KMS 金鑰。此外，我們建議您的組織設定[AWS 中斷玻璃存取程序](https://docs.aws.amazon.com/wellarchitected/latest/devops-guidance/ag.sad.5-implement-break-glass-procedures.html)，以確保您的特權使用者在 AWS 無法存取 IAM Identity Center 時可以存取 。

## 尋找所需識別符的位置
<a name="find-the-required-identifiers"></a>

 設定客戶受管 KMS 金鑰的許可時，您需要特定的 AWS 資源識別符才能完成金鑰政策和 IAM 政策陳述式範本。在 KMS 金鑰政策陳述式中插入所需的識別符 （例如組織 ID) 和 IAM 主體名稱。

 以下是在 AWS 管理主控台中尋找這些識別符的指南。

 **IAM Identity Center Amazon Resource Name (ARN) 和 Identity Store ARN** 

 IAM Identity Center 執行個體是一種 AWS 資源，具有自己的唯一 ARN，例如 arn：aws：sso：：instance/ssoins-1234567890abcdef。ARN 遵循服務授權參考的 IAM Identity Center 資源類型區段中記錄的模式。

 每個 IAM Identity Center 執行個體都有關聯的 Identity Store，可存放使用者和群組身分。Identity Store 具有稱為 Identity Store ID 的唯一識別符 （例如 d-123456789a)。ARN 遵循[服務授權參考](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiamidentitycenterdirectory.html)的 Identity Store 資源類型區段中記錄的模式。

 您可以在 IAM Identity Center 的設定頁面上找到 ARN 和 Identity Store ID 值。身分存放區 ID 位於身分來源索引標籤中。

 **AWS Organizations ID** 

 如果您想要在金鑰政策中指定組織 ID （例如 o-exampleorg1)，您可以在 IAM Identity Center 和 Organizations 主控台的設定頁面中找到其值。ARN 遵循服務授權參考中 Organizations 資源類型區段中記錄的模式。

 **KMS 金鑰 ARN** 

 您可以在 AWS KMS 主控台中找到 KMS 金鑰的 ARN。選擇左側的客戶受管金鑰，按一下您要查詢其 ARN 的金鑰，您會在一般組態區段中看到該金鑰。ARN 遵循服務授權參考 AWS KMS 的資源類型區段中記錄的模式。

 如需 中金鑰政策 AWS KMS 與故障診斷 AWS KMS 許可的詳細資訊，請參閱 AWS Key Management Service 開發人員指南。如需 IAM 政策及其 JSON 表示法的詳細資訊，請參閱 IAM 使用者指南。

# 基準 KMS 金鑰和 IAM 政策陳述式
<a name="baseline-KMS-key-policy"></a>

此處提供的基準 KMS 金鑰和身分型政策是常見需求的基礎。我們也建議您檢閱 [進階 KMS 金鑰政策陳述式](advanced-kms-policy.md)以提供更精細的存取控制，例如確保 KMS 金鑰只能由特定 IAM Identity Center 執行個體或 AWS 受管應用程式存取。在使用進階 KMS 金鑰政策陳述式之前，請檢閱 [選擇基準與進階 KMS 金鑰政策陳述式的考量](considerations-for-customer-managed-kms-keys-advanced.md#kms-policy-considerations-advanced-vs-baseline)。

以下各節提供每個使用案例的基準政策陳述式。展開符合您使用案例的區段，並複製 KMS 金鑰政策陳述式。然後，返回 [步驟 2：準備 KMS 金鑰政策陳述式](identity-center-customer-managed-keys.md#choose-kms-key-policy-statements)。

## 使用 IAM Identity Center 的基準 KMS 金鑰政策陳述式 （必要）
<a name="baseline-kms-key-policy-statements-for-use-of-iam-identity-center-mandatory"></a>

在 中使用下列 KMS 金鑰政策陳述式範本[步驟 2：準備 KMS 金鑰政策陳述式](identity-center-customer-managed-keys.md#choose-kms-key-policy-statements)，以允許 IAM Identity Center、其相關聯的 Identity Store 和 IAM Identity Center 管理員使用 KMS 金鑰。
+ 在管理員政策陳述式的主體元素中 AWS ，指定 IAM Identity Center 管理帳戶的帳戶主體，這是 AWS 組織管理帳戶和委派的管理帳戶，格式為 "arn：aws：iam：：111122223333：root"。
+ 在 PrincipalArn 元素中，將範例 ARNs 取代為 IAM Identity Center 管理員的 IAM 角色。

  您可以指定下列其中一項：
  + 特定 IAM 角色 ARN：

     ` "arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/ap-southeast-2/AWSReservedSSO_permsetname_12345678"` 
  + 萬用字元模式 （建議）：

     ` "arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/ap-southeast-2/AWSReservedSSO_permsetname_*"` 

  如果刪除並重新建立許可集，使用萬用字元 (`*`) 可防止存取遺失，因為 Identity Center 會為重新建立的許可集產生新的唯一識別符。如需實作範例，請參閱 [自訂信任政策範例](referencingpermissionsets.md#custom-trust-policy-example) 。
+ 在 SourceAccount 元素中，指定 IAM Identity Center 帳戶 ID。
+ Identity Store 有自己的服務主體 `identitystore.amazonaws.com`，必須允許其使用 KMS 金鑰。
+ 這些政策陳述式允許特定 AWS 帳戶中的 IAM Identity Center 執行個體使用 KMS 金鑰。若要限制對特定 IAM Identity Center 執行個體的存取，請參閱 [進階 KMS 金鑰政策陳述式](advanced-kms-policy.md)。每個 AWS 帳戶只能有一個 IAM Identity Center 執行個體。

KMS 金鑰政策陳述式

```
{
  "Version": "2012-10-17", 		 	 	 
  "Statement": [
    {
      "Sid": "AllowIAMIdentityCenterAdminToUseTheKMSKeyViaIdentityCenter",
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::111122223333:root",
          "arn:aws:iam::444455556666:root"
        ]
      },
      "Action": [
        "kms:Decrypt",
        "kms:Encrypt",
        "kms:GenerateDataKeyWithoutPlaintext"
      ],
      "Resource": "*",
      "Condition": {
        "ArnLike": {
          "aws:PrincipalArn": [
            "arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_Admin_*",
            "arn:aws:iam::444455556666:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_DelegatedAdmin_*"
          ]
        },
        "StringLike": {
          "kms:ViaService": "sso.*.amazonaws.com",
          "kms:EncryptionContext:aws:sso:instance-arn": "*"
        }
      }
    },
    {
      "Sid": "AllowIAMIdentityCenterAdminToUseTheKMSKeyViaIdentityStore",
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::111122223333:root",
          "arn:aws:iam::444455556666:root"
        ]
      },
      "Action": [
        "kms:Decrypt",
        "kms:Encrypt",
        "kms:GenerateDataKeyWithoutPlaintext"
      ],
      "Resource": "*",
      "Condition": {
        "ArnLike": {
          "aws:PrincipalArn": [
            "arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_Admin_*",
            "arn:aws:iam::444455556666:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_DelegatedAdmin_*"
          ]
        },
        "StringLike": {
          "kms:ViaService": "identitystore.*.amazonaws.com",
          "kms:EncryptionContext:aws:identitystore:identitystore-arn": "*"
        }
      }
    },
    {
      "Sid": "AllowIAMIdentityCenterAdminToDescribeTheKMSKey",
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::111122223333:root",
          "arn:aws:iam::444455556666:root"
        ]
      },
      "Action": "kms:DescribeKey",
      "Resource": "*",
      "Condition": {
        "ArnLike": {
          "aws:PrincipalArn": [
            "arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_Admin_*",
            "arn:aws:iam::444455556666:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_DelegatedAdmin_*"
          ]
        }
      }
    },
    {
      "Sid": "AllowIAMIdentityCenterToUseTheKMSKey",
      "Effect": "Allow",
      "Principal": {
        "Service": "sso.amazonaws.com"
      },
      "Action": [
        "kms:Decrypt",
        "kms:ReEncryptTo",
        "kms:ReEncryptFrom",
        "kms:GenerateDataKeyWithoutPlaintext"
      ],
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "kms:EncryptionContext:aws:sso:instance-arn": "*"
        },
        "StringEquals": {
          "aws:SourceAccount": "111122223333"
        }
      }
    },
    {
      "Sid": "AllowIdentityStoreToUseTheKMSKey",
      "Effect": "Allow",
      "Principal": {
        "Service": "identitystore.amazonaws.com"
      },
      "Action": [
        "kms:Decrypt",
        "kms:ReEncryptTo",
        "kms:ReEncryptFrom",
        "kms:GenerateDataKeyWithoutPlaintext"
      ],
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "kms:EncryptionContext:aws:identitystore:identitystore-arn": "*"
        },
        "StringEquals": {
          "aws:SourceAccount": "111122223333"
        }
      }
    },
    {
      "Sid": "AllowIAMIdentityCenterAndIdentityStoreToDescribeKMSKey",
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "identitystore.amazonaws.com",
          "sso.amazonaws.com"
        ]
      },
      "Action": "kms:DescribeKey",
      "Resource": "*"
    }
  ]
}
```

在 中使用下列 IAM 政策陳述式範本[步驟 4：設定 KMS 金鑰跨帳戶使用的 IAM 政策](identity-center-customer-managed-keys.md#configure-iam-policies-kms-key)，以允許 IAM Identity Center 管理員使用 KMS 金鑰。
+ 將 `Resource` 元素中的範例金鑰 ARN 取代為您實際的 KMS 金鑰 ARN。如需尋找參考識別符值的說明，請參閱 [尋找所需識別符的位置](identity-center-customer-managed-keys.md#find-the-required-identifiers)。
+ 這些 IAM 政策陳述式會將 KMS 金鑰存取權授予 IAM 主體，但不會限制哪些 AWS 服務可以提出請求。KMS 金鑰政策通常會提供這些服務限制。不過，您可以將加密內容新增至此 IAM 政策，以限制特定 Identity Center 執行個體的用量。如需詳細資訊，請參閱 [進階 KMS 金鑰政策陳述式](advanced-kms-policy.md)。

IAM Identity Center 委派管理員所需的 IAM 政策陳述式

```
{
  "Version": "2012-10-17", 		 	 	 
  "Statement": [{
      "Sid": "IAMPolicyToAllowIAMIdentityCenterAdminToUseKMSkey",
      "Effect": "Allow",
      "Action": [
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:GenerateDataKeyWithoutPlaintext",
        "kms:DescribeKey"
      ],
      "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
    },
    {
      "Sid": "IAMPolicyToAllowIAMIdentityCenterAdminToListKeyAliases",
      "Effect": "Allow",
      "Action": "kms:ListAliases",
      "Resource": "*"
    }
  ]
}
```

## 使用 AWS 受管應用程式的基準 KMS 金鑰和 IAM 政策陳述式
<a name="baseline-kms-key-policy-statements-for-use-of-aws-managed-applications"></a>

**注意**  
某些 AWS 受管應用程式無法與以客戶受管 KMS 金鑰設定的 IAM Identity Center 搭配使用。如需詳細資訊，請參閱[AWS 使用 IAM Identity Center 的受管應用程式](https://docs.aws.amazon.com/singlesignon/latest/userguide/awsapps-that-work-with-identity-center.html)。

在 中使用下列 KMS 金鑰政策陳述式範本[步驟 2：準備 KMS 金鑰政策陳述式](identity-center-customer-managed-keys.md#choose-kms-key-policy-statements)，以允許 AWS 受管應用程式及其管理員使用 KMS 金鑰。
+ 在 PrincipalOrgID 和 SourceOrgId 條件中插入您的 AWS Organizations ID。如需尋找參考識別符值的說明，請參閱 [尋找所需識別符的位置](identity-center-customer-managed-keys.md#find-the-required-identifiers)。
+ 這些政策陳述式允許組織中的任何 AWS 受管應用程式和任何 IAM 主體 （應用程式管理員） AWS 使用 kms:Decrypt 使用 IAM Identity Center 和 Identity Store。若要將這些政策陳述式限制為特定 AWS 受管應用程式、帳戶或 IAM Identity Center 執行個體，請參閱 [進階 KMS 金鑰政策陳述式](advanced-kms-policy.md)。

  您可以將 取代` *`為特定 IAM 主體，以限制特定應用程式管理員的存取。若要在重新建立許可集時防止 IAM 角色名稱變更，請使用 中的 方法[自訂信任政策範例](referencingpermissionsets.md#custom-trust-policy-example)。如需詳細資訊，請參閱[選擇基準與進階 KMS 金鑰政策陳述式的考量](considerations-for-customer-managed-kms-keys-advanced.md#kms-policy-considerations-advanced-vs-baseline)。

KMS 金鑰政策陳述式

```
{
  "Version": "2012-10-17", 		 	 	 
  "Statement": [
    {
      "Sid": "AllowAppAdminsInTheSameOrganizationToUseTheKMSKeyViaIdentityCenter",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "kms:Decrypt",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:PrincipalOrgID": "o-a1b2c3d4e5"
        },
        "StringLike": {
          "kms:ViaService": "sso.*.amazonaws.com",
          "kms:EncryptionContext:aws:sso:instance-arn": "*"
        }
      }
    },
    {
      "Sid": "AllowAppAdminsInTheSameOrganizationToUseTheKMSKeyViaIdentityStore",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "kms:Decrypt",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:PrincipalOrgID": "o-a1b2c3d4e5"
        },
        "StringLike": {
          "kms:ViaService": "identitystore.*.amazonaws.com",
          "kms:EncryptionContext:aws:identitystore:identitystore-arn": "*"
        }
      }
    },
    {
      "Sid": "AllowManagedAppsToUseTheKMSKeyViaIdentityCenter",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "kms:Decrypt",
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "kms:ViaService": "sso.*.amazonaws.com",
          "kms:EncryptionContext:aws:sso:instance-arn": "*"
        },
        "Bool": {
          "aws:PrincipalIsAWSService": "true"
        },
        "StringEquals": {
          "aws:SourceOrgID": "o-a1b2c3d4e5"
        }
      }
    },
    {
      "Sid": "AllowManagedAppsToUseTheKMSKeyViaIdentityStore",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "kms:Decrypt",
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "kms:ViaService": "identitystore.*.amazonaws.com",
          "kms:EncryptionContext:aws:identitystore:identitystore-arn": "*"
        },
        "Bool": {
          "aws:PrincipalIsAWSService": "true"
        },
        "StringEquals": {
          "aws:SourceOrgID": "o-a1b2c3d4e5"
        }
      }
    }
  ]
}
```

在 中使用下列 IAM 政策陳述式範本[步驟 4：設定 KMS 金鑰跨帳戶使用的 IAM 政策](identity-center-customer-managed-keys.md#configure-iam-policies-kms-key)，以允許受管應用程式的管理員 AWS 使用成員帳戶中的 KMS 金鑰。
+ 將資源元素中的範例 ARN 取代為您實際的 KMS 金鑰 ARN。如需尋找參考識別符值的說明，請參閱 [尋找所需識別符的位置](identity-center-customer-managed-keys.md#find-the-required-identifiers)。
+ 有些 AWS 受管應用程式會要求您設定 IAM Identity Center 服務 APIs許可。在 IAM Identity Center 中設定客戶受管金鑰之前，請確認這些許可也允許使用 KMS 金鑰。如需特定 KMS 金鑰許可要求，請參閱您已部署之每個 AWS 受管應用程式的文件。

 AWS 受管應用程式管理員所需的 IAM 政策陳述式：

```
{
  "Version": "2012-10-17", 		 	 	 
  "Statement": [{
    "Sid": "AllowIAMIdentityCenterAdminToUseTheKMSKeyViaIdentityCenterAndIdentityStore",
    "Effect": "Allow",
    "Action": "kms:Decrypt",
    "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "Condition": {
      "StringLike": {
        "kms:ViaService": [
          "sso.*.amazonaws.com",
          "identitystore.*.amazonaws.com"
        ]
      }
    }
  }]
}
```

## 使用 的基準 KMS 金鑰陳述式 AWS Control Tower
<a name="baseline-kms-key-policy-statements-for-specific-use-cases"></a>

在 中使用下列 KMS 金鑰陳述式範本[步驟 2：準備 KMS 金鑰政策陳述式](identity-center-customer-managed-keys.md#choose-kms-key-policy-statements)，以允許 AWS Control Tower 管理員使用 KMS 金鑰。
+ 在主體元素中，指定用於存取 IAM Identity Center 服務 APIs IAM 主體。如需 IAM 主體的詳細資訊，請參閱《*IAM 使用者指南*》中的[指定主體](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)。
+ 這些政策陳述式允許 AWS Control Tower 管理員透過任何 IAM Identity Center 執行個體使用 KMS 金鑰。不過， AWS Control Tower 會限制存取相同組織中 IAM Identity Center AWS 的組織執行個體。由於此限制，無法進一步將 KMS 金鑰限制為特定 IAM Identity Center [進階 KMS 金鑰政策陳述式](advanced-kms-policy.md) 執行個體，如 中所述。
+ 若要在重新建立許可集時協助防止 IAM [自訂信任政策範例](referencingpermissionsets.md#custom-trust-policy-example) 角色名稱變更，請使用中所述的方法。

KMS 金鑰政策聲明：

```
{
  "Version": "2012-10-17", 		 	 	 
  "Statement": [
    {
      "Sid": "AllowControlTowerAdminRoleToUseTheKMSKeyViaIdentityCenter",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/AWSControlTowerAdmin"
      },
      "Action": "kms:Decrypt",
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "kms:ViaService": "sso.*.amazonaws.com",
          "kms:EncryptionContext:aws:sso:instance-arn": "*"
        }
      }
    },
    {
      "Sid": "AllowControlTowerAdminRoleToUseTheKMSKeyViaIdentityStore",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/AWSControlTowerAdmin"
      },
      "Action": "kms:Decrypt",
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "kms:ViaService": "identitystore.*.amazonaws.com",
          "kms:EncryptionContext:aws:identitystore:identitystore-arn": "*"
        }
      }
    }
  ]
}
```

AWS Control Tower 不支援委派的管理，因此您不需要為其管理員設定 IAM 政策。

**重要**  
上述政策陳述式涵蓋 AWS Control Tower 服務受管操作，例如自動註冊帳戶，其中 AWS Control Tower 擔任該`AWSControlTowerAdmin`角色。不過，對於客戶起始的操作，例如透過 Account Factory 佈建帳戶或直接呼叫 AWS Control Tower APIs， AWS Control Tower 會使用[轉送存取工作階段 (FAS)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html)，並在客戶自己的 IAM 角色下操作。這表示您用來啟動這些操作的 IAM 角色也需要客戶受管 KMS 金鑰的`kms:Decrypt`許可。  
將下列 KMS 金鑰政策陳述式與上述`AWSControlTowerAdmin`陳述式一起新增。將 *MyControlTowerRole* 取代為您用來互動之 IAM 角色的 ARN AWS Control Tower，例如 IAM Identity Center 許可集角色 （例如 `AWSReservedSSO_PermissionSetName_*`)、用於自動化的自訂 IAM 角色，或任何其他用於呼叫 AWS Control Tower 或 AWS Service Catalog APIs的角色。

客戶起始 AWS Control Tower 操作的 KMS 金鑰政策陳述式：

```
{
  "Version": "2012-10-17", 		 	 	 
  "Statement": [
    {
      "Sid": "AllowCustomerRoleToUseTheKMSKeyViaIdentityCenterForControlTower",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/MyControlTowerRole"
      },
      "Action": "kms:Decrypt",
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "kms:ViaService": "sso.*.amazonaws.com",
          "kms:EncryptionContext:aws:sso:instance-arn": "*"          
        }
      }
    },
    {
      "Sid": "AllowCustomerRoleToUseTheKMSKeyViaIdentityStoreForControlTower",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/MyControlTowerRole"
      },
      "Action": "kms:Decrypt",
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "kms:ViaService": "identitystore.*.amazonaws.com",
          "kms:EncryptionContext:aws:identitystore:identitystore-arn": "*"
        }
      }
    }
  ]
}
```

## 將 IAM Identity Center 用於 Amazon EC2 執行個體的基準 KMS 金鑰和 IAM 政策陳述式
<a name="baseline-kms-key-policy-statements-for-use-of-sso-to-amazon-ec2-windows-instances"></a>

在 中使用下列 KMS 金鑰政策陳述式範本[步驟 2：準備 KMS 金鑰政策陳述式](identity-center-customer-managed-keys.md#choose-kms-key-policy-statements)，以允許 Amazon EC2 執行個體的單一登入 (SSO) 使用者跨帳戶使用 KMS 金鑰。
+ 在主體欄位中指定用於存取 IAM Identity Center 的 IAM 主體。如需 IAM 主體的詳細資訊，請參閱《*IAM 使用者指南*》中的[指定主體](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)。
+ 此政策陳述式允許任何 IAM Identity Center 執行個體使用 KMS 金鑰。若要限制對特定 IAM Identity Center 執行個體的存取，請參閱 [進階 KMS 金鑰政策陳述式](advanced-kms-policy.md)。
+ 若要在重新建立許可集時協助防止 IAM 角色名稱變更，請使用自訂信任政策範例中所述的方法。

KMS 金鑰政策陳述式

```
{
  "Version": "2012-10-17", 		 	 	 
  "Statement": [
    {
      "Sid": "AllowIAMIdentityCenterPermissionSetRoleToUseTheKMSKeyViaIdentityCenter",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_MyPermissionSet_1a2b3c4d5e6f7g8h"
      },
      "Action": "kms:Decrypt",
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "kms:ViaService": "sso.*.amazonaws.com",
          "kms:EncryptionContext:aws:sso:instance-arn": "*"

        }
      }
    },
    {
      "Sid": "AllowIAMIdentityCenterPermissionSetRoleToUseTheKMSKeyViaIdentityStore",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_MyPermissionSet_1a2b3c4d5e6f7g8h"
      },
      "Action": "kms:Decrypt",
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "kms:ViaService": "identitystore.*.amazonaws.com",
          "kms:EncryptionContext:aws:identitystore:identitystore-arn": "*"
        }
      }
    }
  ]
}
```

在 中使用下列 IAM 政策陳述式範本[步驟 4：設定 KMS 金鑰跨帳戶使用的 IAM 政策](identity-center-customer-managed-keys.md#configure-iam-policies-kms-key)，以允許 SSO 到 EC2 執行個體使用 KMS 金鑰。

將 IAM 政策陳述式連接到您用來允許 SSO 存取 Amazon EC2 執行個體的 IAM Identity Center 中現有的許可集。如需 IAM 政策範例，請參閱 *AWS Systems Manager 使用者指南*中的[遠端桌面通訊協定連線](https://docs.aws.amazon.com/systems-manager/latest/userguide/fleet-manager-remote-desktop-connections.html#rdp-iam-policy-examples)。
+ 將資源元素中的範例 ARN 取代為您實際的 KMS 金鑰 ARN。如需尋找參考識別符值的說明，請參閱 [尋找所需識別符的位置](identity-center-customer-managed-keys.md#find-the-required-identifiers)。

許可集 IAM 政策：

```
{
  "Version": "2012-10-17", 		 	 	 
  "Statement": [{
    "Sid": "IAMPolicyToAllowKMSKeyUseViaIdentityCenterAndIdentityStore",
    "Effect": "Allow",
    "Action": "kms:Decrypt",
    "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "Condition": {
      "StringLike": {
        "kms:ViaService": [
          "sso.*.amazonaws.com",
          "identitystore.*.amazonaws.com"
        ]
      }
    }
  }]
}
```

## 搭配 IAM Identity Center 使用自訂工作流程的基準 KMS 金鑰和 IAM 政策陳述式
<a name="baseline-kms-key-policy-statements-for-use-of-custom-workflows-with-iam-identity-center"></a>

在 中使用下列 KMS 金鑰政策陳述式範本[步驟 2：準備 KMS 金鑰政策陳述式](identity-center-customer-managed-keys.md#choose-kms-key-policy-statements)，以允許 AWS Organizations 管理帳戶或委派管理帳戶中的自訂工作流程使用 KMS 金鑰。請注意，客戶受管應用程式的 SAML 聯合不需要 KMS 金鑰許可。
+ 在主體元素中，指定用於存取 IAM Identity Center 服務 APIs IAM 主體。如需 IAM 主體的詳細資訊，請參閱《*IAM 使用者指南*》中的[指定主體](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)。
+ 這些政策陳述式可讓您的工作流程透過任何 IAM Identity Center 執行個體使用 KMS 金鑰。若要限制對特定 IAM Identity Center 執行個體的存取，請參閱 [進階 KMS 金鑰政策陳述式](advanced-kms-policy.md)。
+ 若要在重新建立許可集時協助防止 IAM [自訂信任政策範例](referencingpermissionsets.md#custom-trust-policy-example) 角色名稱變更，請使用中所述的方法。

KMS 金鑰政策聲明：

```
{
  "Version": "2012-10-17", 		 	 	 
  "Statement": [
    {
      "Sid": "AllowCustomWorkflowToUseTheKMSKeyViaIdentityCenter",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/MyCustomWorkflowRole"
      },
      "Action": "kms:Decrypt",
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "kms:ViaService": "sso.*.amazonaws.com",
          "kms:EncryptionContext:aws:sso:instance-arn": "*"
        }
      }
    },
    {
      "Sid": "AllowCustomWorkflowToUseTheKMSKeyViaIdentityStore",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/MyCustomWorkflowRole"
      },
      "Action": "kms:Decrypt",
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "kms:ViaService": "identitystore.*.amazonaws.com",
          "kms:EncryptionContext:aws:identitystore:identitystore-arn": "*"
        }
      }
    }
  ]
}
```

在 中使用下列 IAM 政策陳述式範本[步驟 4：設定 KMS 金鑰跨帳戶使用的 IAM 政策](identity-center-customer-managed-keys.md#configure-iam-policies-kms-key)，以允許與自訂工作流程相關聯的 IAM 主體跨帳戶使用 KMS 金鑰。將 IAM 政策陳述式新增至 IAM 主體。
+ 將資源元素中的範例 ARN 取代為您實際的 KMS 金鑰 ARN。如需尋找參考識別符值的說明，請參閱 [尋找所需識別符的位置](identity-center-customer-managed-keys.md#find-the-required-identifiers)。

IAM 政策陳述式 （僅適用於跨帳戶使用）：

```
{
  "Version": "2012-10-17", 		 	 	 
  "Statement": [{
    "Sid": "AllowCustomWorkflowToUseTheKMSKeyViaIdentityCenterAndIdentityStore",
    "Effect": "Allow",
    "Action": "kms:Decrypt",
    "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "Condition": {
      "StringLike": {
        "kms:ViaService": [
          "sso.*.amazonaws.com",
          "identitystore.*.amazonaws.com"
        ]
      }
    }
  }]
}
```

## 常見使用案例的 KMS 金鑰政策陳述式範例
<a name="kms-key-policy-examples-for-common-use-cases"></a>

### 具有委派管理員和 AWS 受管應用程式的 IAM Identity Center
<a name="example-identity-center-del-admin-aws-apps"></a>

本節包含範例 KMS 金鑰政策陳述式，可用於具有委派管理員和 AWS 受管應用程式的 IAM Identity Center 執行個體。

**重要**  
KMS 金鑰政策陳述式假設您的 IAM Identity Center 執行個體不會用於需要 KMS 金鑰許可的任何其他使用案例。若要確認，您可以檢閱所有[使用案例](identity-center-customer-managed-keys.md#identify-use-cases)。此外，若要確認您的受管 AWS 應用程式是否需要其他組態，請參閱 [某些 AWS 受管應用程式中的其他組態](identity-center-customer-managed-keys.md#additional-config-in-some-aws-apps) 

複製資料表下方的 KMS 金鑰政策陳述式，並將其新增至您的 KMS 金鑰政策。此範例使用下列範例值：
+  `111122223333` - IAM Identity Center 執行個體的帳戶 ID 
+  `444455556666` - 委派的管理帳戶 ID 
+  `o-a1b2c3d4e5` - AWS 組織 ID 
+  ` arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_Admin_*` - 從許可集 *Admin* 佈建的 IAM Identity Center 管理員 IAM 角色萬用字元模式。這類角色包含主要區域的區域代碼 （在此範例中為us-east-1)。
+  ` arn:aws:iam::444455556666:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_DelegatedAdmin_*` - 從許可集 *DelegatedAdmin* 佈建的 IAM Identity Center 委派管理員 IAM 角色的萬用字元模式。這類角色包含主要區域的區域代碼 （在此範例中為us-east-1)。

如果 IAM 角色不是從許可集產生，IAM 角色看起來會像一般角色，例如 `arn:aws:iam::111122223333:role/idcadmin`。

```
{
  "Version": "2012-10-17", 		 	 	 
  "Statement": [
    {
      "Sid": "AllowIAMIdentityCenterAdminToUseTheKMSKeyViaIdentityCenter",
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::111122223333:root",
          "arn:aws:iam::444455556666:root"
        ]
      },
      "Action": [
        "kms:Decrypt",
        "kms:Encrypt",
        "kms:GenerateDataKeyWithoutPlaintext"
      ],
      "Resource": "*",
      "Condition": {
        "ArnLike": {
          "aws:PrincipalArn": [
            "arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_Admin_*",
            "arn:aws:iam::444455556666:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_DelegatedAdmin_*"
          ]
        },
        "StringLike": {
          "kms:ViaService": "sso.*.amazonaws.com",
          "kms:EncryptionContext:aws:sso:instance-arn": "*"
        }
      }
    },
    {
      "Sid": "AllowIAMIdentityCenterAdminToUseTheKMSKeyViaIdentityStore",
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::111122223333:root",
          "arn:aws:iam::444455556666:root"
        ]
      },
      "Action": [
        "kms:Decrypt",
        "kms:Encrypt",
        "kms:GenerateDataKeyWithoutPlaintext"
      ],
      "Resource": "*",
      "Condition": {
        "ArnLike": {
          "aws:PrincipalArn": [
            "arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_Admin_*",
            "arn:aws:iam::444455556666:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_DelegatedAdmin_*"
          ]
        },
        "StringLike": {
          "kms:ViaService": "identitystore.*.amazonaws.com",
          "kms:EncryptionContext:aws:identitystore:identitystore-arn": "*"
        }
      }
    },
    {
      "Sid": "AllowIAMIdentityCenterAdminToDescribeTheKMSKey",
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::111122223333:root",
          "arn:aws:iam::444455556666:root"
        ]
      },
      "Action": "kms:DescribeKey",
      "Resource": "*",
      "Condition": {
        "ArnLike": {
          "aws:PrincipalArn": [
            "arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_Admin_*",
            "arn:aws:iam::444455556666:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_DelegatedAdmin_*"
          ]
        }
      }
    },
    {
      "Sid": "AllowIAMIdentityCenterToUseTheKMSKey",
      "Effect": "Allow",
      "Principal": {
        "Service": "sso.amazonaws.com"
      },
      "Action": [
        "kms:Decrypt",
        "kms:ReEncryptTo",
        "kms:ReEncryptFrom",
        "kms:GenerateDataKeyWithoutPlaintext"
      ],
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "kms:EncryptionContext:aws:sso:instance-arn": "*"
        },
        "StringEquals": {
          "aws:SourceAccount": "111122223333"
        }
      }
    },
    {
      "Sid": "AllowIdentityStoreToUseTheKMSKey",
      "Effect": "Allow",
      "Principal": {
        "Service": "identitystore.amazonaws.com"
      },
      "Action": [
        "kms:Decrypt",
        "kms:ReEncryptTo",
        "kms:ReEncryptFrom",
        "kms:GenerateDataKeyWithoutPlaintext"
      ],
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "kms:EncryptionContext:aws:identitystore:identitystore-arn": "*"
        },
        "StringEquals": {
          "aws:SourceAccount": "111122223333"
        }
      }
    },
    {
      "Sid": "AllowIAMIdentityCenterAndIdentityStoreToDescribeKMSKey",
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "identitystore.amazonaws.com",
          "sso.amazonaws.com"
        ]
      },
      "Action": "kms:DescribeKey",
      "Resource": "*"
    },
 
   {
      "Sid": "AllowAppAdminsInTheSameOrganizationToUseTheKMSKeyViaIdentityCenter",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "kms:Decrypt",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:PrincipalOrgID": "o-a1b2c3d4e5"
        },
        "StringLike": {
          "kms:ViaService": "sso.*.amazonaws.com",
          "kms:EncryptionContext:aws:sso:instance-arn": "*"
        }
      }
    },
    {
      "Sid": "AllowAppAdminsInTheSameOrganizationToUseTheKMSKeyViaIdentityStore",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "kms:Decrypt",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:PrincipalOrgID": "o-a1b2c3d4e5"
        },
        "StringLike": {
          "kms:ViaService": "identitystore.*.amazonaws.com",
          "kms:EncryptionContext:aws:identitystore:identitystore-arn": "*"
        }
      }
    },
    {
      "Sid": "AllowManagedAppsToUseTheKMSKeyViaIdentityCenter",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "kms:Decrypt",
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "kms:ViaService": "sso.*.amazonaws.com",
          "kms:EncryptionContext:aws:sso:instance-arn": "*"
        },
        "Bool": {
          "aws:PrincipalIsAWSService": "true"
        },
        "StringEquals": {
          "aws:SourceOrgID": "o-a1b2c3d4e5"
        }
      }
    },
    {
      "Sid": "AllowManagedAppsToUseTheKMSKeyViaIdentityStore",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "kms:Decrypt",
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "kms:ViaService": "identitystore.*.amazonaws.com",
          "kms:EncryptionContext:aws:identitystore:identitystore-arn": "*"
        },
        "Bool": {
          "aws:PrincipalIsAWSService": "true"
        },
        "StringEquals": {
          "aws:SourceOrgID": "o-a1b2c3d4e5"
        }
      }
    }
  ]
}
```

# 進階 KMS 金鑰政策陳述式
<a name="advanced-kms-policy"></a>

 使用進階 KMS 金鑰政策陳述式，為您的客戶受管 KMS 金鑰實作更精細的存取控制。透過新增加密內容條件和服務特定的限制[基準 KMS 金鑰和 IAM 政策陳述式](baseline-KMS-key-policy.md)，這些政策以 為基礎。在決定是否使用進階 KMS 金鑰政策陳述式之前，請務必檢閱相關考量事項。

## 使用加密內容來限制存取
<a name="using-encryption-context-to-restrict-access"></a>

 您可以在金鑰政策陳述式中指定加密內容條件，將 KMS 金鑰用量限制為特定 IAM Identity Center 執行個體。基準金鑰政策陳述式已包含具有一般值的此內容。將「\$1」萬用字元取代為特定 Identity Center 執行個體 ARN 和 Identity Store ARN，以確保金鑰僅適用於您的預期執行個體。您也可以將相同的加密內容條件新增至設定為跨帳戶使用 KMS 金鑰的 IAM 政策。

Identity Center

```
"StringEquals": {
    "kms:EncryptionContext:aws:sso:instance-arn": "arn:aws:sso:::instance/ssoins-1234567890abcdef"
}
```

身分存放區

```
"StringEquals": {
    "kms:EncryptionContext:aws:identitystore:identitystore-arn": "arn:aws:identitystore::111122223333:identitystore/d-1234567890"
}
```

 如果您需要尋找這些識別符的說明，請參閱 [尋找所需識別符的位置](identity-center-customer-managed-keys.md#find-the-required-identifiers) 。

**注意**  
您只能將客戶受管 KMS 金鑰與 IAM Identity Center 的組織執行個體搭配使用。客戶受管金鑰必須位於 AWS 組織的管理帳戶中，這有助於確保金鑰與單一 IAM Identity Center 執行個體搭配使用。不過，加密內容機制提供單一執行個體使用的獨立技術保護措施。您也可以在適用於 Identity Center 和 Identity Store 服務主體的 KMS 金鑰政策陳述式中使用 `aws:SourceArn`條件金鑰。

### 實作加密內容條件的考量事項
<a name="considerations-for-implementing-encryption-context-conditions"></a>

在實作加密內容條件之前，請檢閱下列要求：
+  **DescribeKey 動作。**加密內容無法套用至「kms:DescribeKey」動作，IAM Identity Center 管理員可以使用。設定 KMS 金鑰政策時，請排除此特定動作的加密內容，以確保 IAM Identity Center 執行個體能正常運作。
+  **新的執行個體設定。**如果您要使用客戶受管 KMS 金鑰啟用新的 IAM Identity Center 執行個體，請參閱 [客戶受管 KMS 金鑰和進階 KMS 金鑰政策的考量](considerations-for-customer-managed-kms-keys-advanced.md)。
+  **身分來源變更。**將您的身分來源變更為 Active Directory 或從 Active Directory 變更時，加密內容需要特別注意。請參閱 [變更身分來源的考量事項](manage-your-identity-source-considerations.md)。

## 政策範本
<a name="advanced-policy-templates"></a>

 根據您的安全需求，從這些進階政策範本中進行選擇。平衡精細存取控制及其帶來的管理開銷。

此處涵蓋的主題：
+  [特定 IAM Identity Center 執行個體的唯讀使用的 KMS 政策陳述式](#kms-policy-statements-for-read-only-use-of-a-specific-iam-identity-center-instance)。 本節示範如何使用加密內容來唯讀存取 IAM Identity Center。
+  [精簡 KMS 金鑰政策陳述式以使用 AWS 受管應用程式](#refined-kms-key-policy-statements-for-use-of-aws-managed-applications)。 本節示範如何使用加密內容和應用程式資訊來精簡 AWS 受管應用程式的 KMS 金鑰政策，例如應用程式服務主體、應用程式 ARN 和 AWS 帳戶 ID。

## 特定 IAM Identity Center 執行個體的唯讀使用的 KMS 政策陳述式
<a name="kms-policy-statements-for-read-only-use-of-a-specific-iam-identity-center-instance"></a>

 此政策允許[安全稽核人員](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/SecurityAudit.html)和其他只需要讀取 IAM Identity Center 存取權的人員使用 KMS 金鑰。

若要使用此政策：

1. 將範例唯讀管理員 IAM 主體取代為您的實際管理員 IAM 主體

1. 將範例 IAM Identity Center 執行個體 ARN 取代為您的實際執行個體 ARN

1. 將範例 Identity Store ARN 取代為您實際的 Identity Store ARN

1. 如果使用[委派的管理](https://docs.aws.amazon.com/singlesignon/latest/userguide/delegated-admin.html)，請參閱 [步驟 4：設定 KMS 金鑰跨帳戶使用的 IAM 政策](identity-center-customer-managed-keys.md#configure-iam-policies-kms-key)

如果您需要協助尋找這些識別符的值，請參閱 [尋找所需識別符的位置](identity-center-customer-managed-keys.md#find-the-required-identifiers) 。

使用值更新範本後，請返回 [步驟 2：準備 KMS 金鑰政策陳述式](identity-center-customer-managed-keys.md#choose-kms-key-policy-statements) 以視需要準備其他 KMS 金鑰政策陳述式。

kms:Decrypt 動作本身不會限制對唯讀操作的存取。IAM 政策必須在 IAM Identity Center 服務 APIs上強制執行唯讀存取。

```
{
  "Version": "2012-10-17", 		 	 	 
  "Statement": [
    {
      "Sid": "AllowReadOnlyAccessToIdentityCenterAPI",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/MyAdminRole"
      },
      "Action": "kms:Decrypt",
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "kms:ViaService": "sso.*.amazonaws.com",
          "kms:EncryptionContext:aws:sso:instance-arn": "arn:aws:sso:::instance/ssoins-1234567890abcdef"
        }
      }
    },
    {
      "Sid": "AllowReadOnlyAccessToIdentityStoreAPI",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/MyAdminRole"
      },
      "Action": "kms:Decrypt",
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "kms:ViaService": "identitystore.*.amazonaws.com",
          "kms:EncryptionContext:aws:identitystore:identitystore-arn": "arn:aws:identitystore::111122223333:identitystore/d-1234567890"
        }
      }
    }
  ]
}
```

## 精簡 KMS 金鑰政策陳述式以使用 AWS 受管應用程式
<a name="refined-kms-key-policy-statements-for-use-of-aws-managed-applications"></a>

 這些政策範本可讓您更精細地控制哪些 AWS 受管應用程式可以使用您的 KMS 金鑰。

**注意**  
 某些 AWS 受管應用程式無法與以客戶受管 KMS 金鑰設定的 IAM Identity Center 搭配使用。請參閱[AWS 可與 IAM Identity Center 搭配使用的受管應用程式](https://docs.aws.amazon.com/singlesignon/latest/userguide/awsapps-that-work-with-identity-center.html)。

[使用 AWS 受管應用程式的基準 KMS 金鑰和 IAM 政策陳述式](baseline-KMS-key-policy.md#baseline-kms-key-policy-statements-for-use-of-aws-managed-applications) 允許來自相同 AWS 組織中任何帳戶的 AWS 受管應用程式使用 KMS 金鑰。使用這些精簡政策來限制存取：
+ 應用程式服務主體
+ 應用程式執行個體 ARNs
+ AWS 帳戶 IDs
+ 特定 IAM Identity Center 執行個體的加密內容

**注意**  
服務主體是 AWS 服務的唯一識別符，通常格式為 servicename.amazonaws.com （例如 Amazon EMR 的 elasticmapreduce.amazonaws.com)。

### 依帳戶限制
<a name="restrict-by-account"></a>

此 KMS 金鑰政策陳述式範本允許特定 AWS 帳戶中的 AWS 受管應用程式使用特定 IAM Identity Center 執行個體來使用 KMS 金鑰。

若要使用此政策：

1. 將範例服務主體取代為您實際的應用程式服務主體

1. 將範例帳戶 IDs 取代為部署受 AWS 管應用程式的實際帳戶 IDs 

1. 將範例 Identity Store ARN 取代為您實際的 Identity Store ARN

1. 將範例 IAM Identity Center 執行個體 ARN 取代為您的實際執行個體 ARN

```
{
  "Version": "2012-10-17", 		 	 	 
  "Statement": [
    {
      "Sid": "AllowServiceInSpecificAccountsToUseTheKMSKeyViaIdentityCenter",
      "Effect": "Allow",
      "Principal": {
        "Service": "myapp.amazonaws.com"
      },
      "Action": "kms:Decrypt",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": [
            "111122223333",
            "444455556666"
          ]
        },
        "StringLike": {
          "kms:ViaService": "sso.*.amazonaws.com",
          "kms:EncryptionContext:aws:sso:instance-arn": "arn:aws:sso:::instance/ssoins-1234567890abcdef"
        },
        "Bool": {
          "aws:PrincipalIsAWSService": "true"
        }
      }
    },
    {
      "Sid": "AllowServiceInSpecificAccountsToUseTheKMSKeyViaIdentityStore",
      "Effect": "Allow",
      "Principal": {
        "Service": "myapp.amazonaws.com"
      },
      "Action": "kms:Decrypt",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": [
            "111122223333",
            "444455556666"
          ]
        },
        "StringLike": {
          "kms:ViaService": "identitystore.*.amazonaws.com",
          "kms:EncryptionContext:aws:identitystore:identitystore-arn": "arn:aws:identitystore::111122223333:identitystore/d-1234567890"
        },
        "Bool": {
          "aws:PrincipalIsAWSService": "true"
        }
      }
    }
  ]
}
```

### 依應用程式執行個體限制
<a name="restrict-by-application-instance"></a>

此 KMS 金鑰政策陳述式範本允許特定 AWS 受管應用程式執行個體使用特定 IAM Identity Center 執行個體來使用 KMS 金鑰。

若要使用此政策：

1. 將範例服務主體取代為您實際的應用程式服務主體

1. 將範例應用程式 ARN 取代為您實際的應用程式執行個體 ARN

1. 將範例 Identity Store ARN 取代為您實際的 Identity Store ARN

1. 將範例 IAM Identity Center 執行個體 ARN 取代為您的實際執行個體 ARN

```
{
  "Version": "2012-10-17", 		 	 	 
  "Statement": [
    {
      "Sid": "AllowSpecificAppInstanceToUseTheKMSKeyViaIdentityCenter",
      "Effect": "Allow",
      "Principal": {
        "Service": "myapp.amazonaws.com"
      },
      "Action": "kms:Decrypt",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:SourceARN": "arn:aws:myapp:us-east-1:111122223333:application/my-application"
        },
        "StringLike": {
          "kms:ViaService": "sso.*.amazonaws.com",
          "kms:EncryptionContext:aws:sso:instance-arn": "arn:aws:sso:::instance/ssoins-1234567890abcdef"
        },
        "Bool": {
          "aws:PrincipalIsAWSService": "true"
        }
      }
    },
    {
      "Sid": "AllowSpecificAppInstanceToUseTheKMSKeyViaIdentityStore",
      "Effect": "Allow",
      "Principal": {
        "Service": "myapp.amazonaws.com"
      },
      "Action": "kms:Decrypt",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:SourceARN": "arn:aws:myapp:us-east-1:111122223333:application/my-application"
        },
        "StringLike": {
          "kms:ViaService": "identitystore.*.amazonaws.com",
          "kms:EncryptionContext:aws:identitystore:identitystore-arn": "arn:aws:identitystore::111122223333:identitystore/d-1234567890"
        },
        "Bool": {
          "aws:PrincipalIsAWSService": "true"
        }
      }
    }
  ]
}
```

# 客戶受管 KMS 金鑰和進階 KMS 金鑰政策的考量
<a name="considerations-for-customer-managed-kms-keys-advanced"></a>

使用 IAM Identity Center 實作客戶受管 KMS 金鑰時，請考慮這些會影響加密組態設定、安全性和持續維護的因素。

## 選擇基準與進階 KMS 金鑰政策陳述式的考量
<a name="kms-policy-considerations-advanced-vs-baseline"></a>

決定是否使用 讓 KMS 金鑰許可更具體時[進階 KMS 金鑰政策陳述式](advanced-kms-policy.md)，請考慮組織的管理開銷和安全需求。更具體的政策陳述式可更精細地控制誰可以使用金鑰以及用於什麼目的；不過，隨著 IAM Identity Center 組態的演進，它們需要持續維護。例如，如果您將 KMS 金鑰的使用限制為特定 AWS 受管應用程式部署，則每當組織想要部署或取消部署應用程式時，都需要更新金鑰政策。限制性較低的政策可減輕管理負擔，但可能會授予比安全需求所需的更廣泛許可。

## 使用客戶受管 KMS 金鑰啟用新 IAM Identity Center 執行個體的考量
<a name="considerations-for-enabling-new-instance"></a>

 如果您使用 中所述的加密內容[進階 KMS 金鑰政策陳述式](advanced-kms-policy.md)，將 KMS 金鑰的使用限制在特定 IAM Identity Center 執行個體，則適用此處的考量。

 使用客戶受管 KMS 金鑰啟用新的 IAM Identity Center 執行個體時，IAM Identity Center 和 Identity Store ARNs 會在設定後才能使用。您有下列選項：
+  暫時使用一般 ARN 模式，然後在執行個體啟用後以完整 ARNs 取代 。請記得視需要在 StringEquals 和 StringLike 運算子之間切換。
  +  對於 IAM Identity Center SPN："arn：\$1\$1Partition\$1：sso：：instance/\$1"。
  +  對於 Identity Store SPN："arn：\$1\$1Partition\$1：identitystore：：\$1\$1Account\$1：identitystore/\$1"。
+  在 ARN 中暫時使用「purpose：KEY\$1CONFIGURATION」。這僅適用於執行個體啟用，且必須以實際 ARN 取代，IAM Identity Center 執行個體才能正常運作。此方法的優點是，在執行個體啟用後，您不會忘記取代此項目。
  +  對於 IAM Identity Center SPN，請使用："arn：\$1\$1Partition\$1：sso：：instance/purpose：KEY\$1CONFIGURATION"
  +  對於 Identity Store SPN，請使用："arn：\$1\$1Partition\$1：identitystore：：\$1\$1Account\$1：identitystore/purpose：KEY\$1CONFIGURATION"
**重要**  
 請勿將此組態套用至已在現有 IAM Identity Center 執行個體中使用的 KMS 金鑰，因為這可能會中斷其正常操作。
+  從 KMS 金鑰政策省略加密內容條件，直到啟用執行個體為止。