

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

# 使用資源型政策共用存取權
<a name="resource-based-policy-examples"></a>

**注意**  
更新現有資源型政策意味著取代現有的政策，因此請確保在新政策中包含所有必要資訊。

## 與跨帳戶 AWS Lambda 函數共用存取權
<a name="Resource-based-policy-examples-lambda"></a>

**Lambda 運算子**

1. 前往 [IAM 主控台](https://console.aws.amazon.com/iam/)以建立 IAM 角色，該角色將用作 AWS Lambda 函數的 [Lambda 執行角色](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html)。新增`AWSLambdaKinesisExecutionRole`具有必要 Kinesis Data Streams 和 Lambda 調用許可的受管 IAM 政策。此政策還會授予對您可能存取 Kinesis Data Streams 資源的存取權。

1. 在 [AWS Lambda 主控台](https://console.aws.amazon.com/lambda/home)中，建立 AWS Lambda 函數[來處理 Kinesis Data Streams 資料串流中的記錄](https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html)，並在設定執行角色期間，選擇您在上一個步驟中建立的角色。

1. 將執行角色提供給 Kinesis Data Streams 資源擁有者，以便設定資源政策。

1. 完成 Lambda 函數的設定。

**Kinesis Data Streams 資源擁有者**

1. 取得將調用 Lambda 函數的跨帳戶 Lambda 執行角色。

1. 在 Amazon Kinesis Data Streams 主控台上，選擇資料串流。選擇**資料串流共用**索引標籤，然後選擇**建立共用政策**按鈕以啟動視覺化政策編輯器。若要在資料串流中共用已註冊的取用者，請選擇該取用者，然後選擇**建立共用政策**。您也可以直接撰寫 JSON 政策。

1. 指定跨帳戶 Lambda 執行角色作為主體，以及您要共用存取權的確切 Kinesis Data Streams 動作。務必包含動作 `kinesis:DescribeStream`。如需 Kinesis Data Streams 的範例資源政策的詳細資訊，請參閱 [Kinesis 資料串流的資源型政策範例](controlling-access.md#kinesis-stream-sharing-iam-examples)。

1. 選擇**建立政策**或使用 [PutResourcePolicy](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_PutResourcePolicy.html) 以將政策附加至您的資源。

## 與跨帳戶 KCL 取用者共用存取權
<a name="Resource-based-policy-examples-kcl-consumers"></a>
+ 如果您使用的是 KCL 1.x，請確保您使用的是 KCL 1.15.0 或更高版本。
+ 如果您使用的是 KCL 2.x，請確保您使用的是 KCL 2.5.3 或更高版本。

**KCL 運算子**

1. 提供將執行 KCL 應用程式的 IAM 使用者或 IAM 角色給資源擁有者。

1. 向資源擁有者要求資料串流或取用者 ARN。

1. 請務必將提供的串流 ARN 指定為 KCL 組態的一部分。
   + 若為 KCL 1.x：使用 [KinesisClientLibConfiguration](https://github.com/awslabs/amazon-kinesis-client/blob/v1.x/src/main/java/com/amazonaws/services/kinesis/clientlibrary/lib/worker/KinesisClientLibConfiguration.java#L738-L821) 建構函數並提供串流 ARN。
   + 若為 KCL 2.x：您可以僅提供串流 ARN 或 [StreamTracker](https://github.com/awslabs/amazon-kinesis-client/blob/master/amazon-kinesis-client/src/main/java/software/amazon/kinesis/processor/StreamTracker.java) 給 Kinesis 用戶端程式庫 [ConfigsBuilder](https://github.com/awslabs/amazon-kinesis-client/blob/master/amazon-kinesis-client/src/main/java/software/amazon/kinesis/common/ConfigsBuilder.java#L155-L176)。若為 StreamTracker，請從程式庫產生的 DynamoDB 租用資料表提供串流 ARN 並建立 Epoch。如果您想要讀取共用的已註冊取用者 (例如增強型散發)，請使用 StreamTracker 並提供取用者 ARN。

**Kinesis Data Streams 資源擁有者**

1. 取得將執行 KCL 應用程式的跨帳戶 IAM 使用者或 IAM 角色。

1. 在 Amazon Kinesis Data Streams 主控台上，選擇資料串流。選擇**資料串流共用**索引標籤，然後選擇**建立共用政策**按鈕以啟動視覺化政策編輯器。若要在資料串流中共用已註冊的取用者，請選擇該取用者，然後選擇**建立共用政策**。您也可以直接撰寫 JSON 政策。

1. 指定跨帳戶 KCL 應用程式的 IAM 使用者或 IAM 角色作為主體，以及您要共用存取權的確切 Kinesis Data Streams 動作。如需 Kinesis Data Streams 的範例資源政策的詳細資訊，請參閱 [Kinesis 資料串流的資源型政策範例](controlling-access.md#kinesis-stream-sharing-iam-examples)。

1. 選擇**建立政策**或使用 [PutResourcePolicy](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_PutResourcePolicy.html) 以將政策附加至您的資源。

## 共用對加密資料的存取權
<a name="sharing-access-to-encrypted-data"></a>

如果您已為具有 AWS 受管 KMS 金鑰的資料串流啟用伺服器端加密，並想要透過資源政策共用存取權，則必須切換到使用客戶受管金鑰 (CMK)。如需詳細資訊，請參閱[什麼是 Kinesis Data Streams 的伺服器端加密？](what-is-sse.md)。此外，您必須允許共用主體實體以使用 KMS 跨帳戶共用功能來存取您的 CMK。請務必同時在共用主體實體的 IAM 政策中進行變更。如需詳細資訊，請參閱[允許其他帳戶中的使用者使用 KMS 金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html)。