QLDB 中的串流權限 - Amazon Quantum Ledger Database (Amazon QLDB)

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

QLDB 中的串流權限

在建立 Amazon QLDB 串流之前,您必須向 QLDB 提供指定 Amazon Kinesis 資料串流資源的寫入許可。如果您使用 AWS KMS key 針對 Kinesis 串流伺服器端加密而管理的客戶,您還必須向 QLDB 提供使用指定對稱加密金鑰的權限。Kinesis Data Streams 不支援非對稱 KMS 金鑰

若要為您的 QLDB 串流提供必要的許可,您可以讓 QLDB 擔任具有適當許可政策的 IAM 服務角色。服務角色是服務擔任的 IAM 角色,可代您執行動作。IAM 管理員可以從 IAM 內建立、修改和刪除服務角色。如需更多資訊,請參閱 IAM 使用者指南中的建立角色以委派許可給 AWS 服務

注意

若要在請求日誌串流時將角色傳遞至 QLDB,則您必須擁有針對 IAM 角色資源執行 iam:PassRole 動作的許可。這是除了 QLDB 串流子資源的qldb:StreamJournalToKinesis權限之外。

要了解如何使用 IAM 控制對 QLDB 的存取,請參閱。Amazon QLDB 如何與 IAM 合作如需 QLDB 原則範例,請參閱。Amazon QLDB 以身分識別為基礎的政策範例

在此範例中,您會建立一個角色,讓 QLDB 代表您將資料記錄寫入 Kinesis 資料串流。如需更多資訊,請參閱 IAM 使用者指南中的建立角色以委派許可給 AWS 服務

如果您 AWS 帳戶 是第一次串流 QLDB 日誌,則必須先執行下列動作以建立具有適當政策的 IAM 角色。或者,您可以使用 QLDB 主控台自動為您建立角色。否則,您可以選擇先前建立的角色。

建立許可政策

完成下列步驟,即可建立 QLDB 串流的權限原則。此範例顯示 Kinesis Data Streams 政策,該政策授與 QLDB 權限,以將資料記錄寫入指定的 Kinesis 資料串流。如果適用,此範例也會顯示允許 QLDB 使用對稱加密 KMS 金鑰的金鑰原則。

如需 Kinesis Data Streams 政策的詳細資訊,請參閱 Amazon Kinesis Data Streams 開發人員指南中的使用 IAM 和許可來控制 Amazon Kinesis Data Streams 資源的存取權限以使用使用者產生的 KMS 。若要進一步了解關 AWS KMS 鍵原則,請參閱AWS Key Management Service 開發人員指南 AWS KMS中的使用金鑰政策

注意

您的 Kinesis 資料串流和 KMS 金鑰必須與您的 QLDB 分類帳位於相同 AWS 區域 的帳戶中。

若要使用 JSON 政策編輯器來建立政策
  1. 登入 AWS Management Console 並開啟身分與存取權管理主控台,網址為 https://console.aws.amazon.com/iam/

  2. 在左側的導覽欄中,選擇 Policies (政策)。

    如果這是您第一次選擇 Policies (政策),將會顯示 Welcome to Managed Policies (歡迎使用受管政策) 頁面。選擇 Get Started (開始使用)

  3. 在頁面頂端,選擇 Create policy (建立政策)

  4. 選擇 JSON 標籤。

  5. 輸入 JSON 政策文件。

    • 如果您使用客戶管理的 KMS 金鑰來進行 Kinesis 串流的伺服器端加密,請使用下列範例政策文件。若要使用此原則,請使用您自己的資訊取代範例中的我們東部 1123456789012 和 1234 英文版。kinesis-stream-name

      { "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBStreamKinesisPermissions", "Action": [ "kinesis:PutRecord*", "kinesis:DescribeStream", "kinesis:ListShards" ], "Effect": "Allow", "Resource": "arn:aws:kinesis:us-east-1:123456789012:stream/kinesis-stream-name" }, { "Sid": "QLDBStreamKMSPermission", "Action": [ "kms:GenerateDataKey" ], "Effect": "Allow", "Resource": "arn:aws:kms:us-east-1:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ] }
    • 否則,請使用下列範例原則文件。若要使用此原則,請以您自己的資訊取代 us-east-1123456789012,並在此範例中。kinesis-stream-name

      { "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBStreamKinesisPermissions", "Action": [ "kinesis:PutRecord*", "kinesis:DescribeStream", "kinesis:ListShards" ], "Effect": "Allow", "Resource": "arn:aws:kinesis:us-east-1:123456789012:stream/kinesis-stream-name" } ] }
  6. 選擇檢閱政策

    注意

    您可以隨時切換 Visual editor (視覺化編輯器) 與 JSON 標籤。不過,如果您進行更改或在 Visual editor (視覺編輯工具) 索引標籤中選擇 Review policy (檢閱政策),IAM 可能會調整您的政策結構以針對視覺編輯工具進行最佳化。如需詳細資訊,請參閱 IAM 使用者指南中的調整政策結構

  7. Review policy (檢閱政策) 頁面上,為您正在建立的政策輸入選用的 Name (名稱) 與 Description (描述)。檢閱政策 Summary (摘要) 來查看您的政策所授予的許可。然後選擇 Create policy (建立政策) 來儲存您的工作。

建立 IAM 角色

為 QLDB 串流建立許可政策後,您可以建立 IAM 角色並將政策附加到該角色。

若要建立 QLDB (IAM 主控台) 的服務角色
  1. 登入 AWS Management Console 並開啟身分與存取權管理主控台,網址為 https://console.aws.amazon.com/iam/

  2. 在 IAM 主控台的導覽窗格中,選擇角色,然後選擇建立角色

  3. 對於 Trusted entity type (信任的實體類型),請選擇 AWS 服務

  4. 對於服務或使用案例,請選擇 QLDB,然後選擇 QL DB 使用案例。

  5. 選擇下一步

  6. 選取您在先前步驟中建立的原則旁邊的方塊。

  7. (選用) 設定許可界限。這是進階功能,可用於服務角色,而不是服務連結的角色。

    1. 開啟 [設定權限界限] 區段,然後選擇 [使用權限界限] 控制最大角色權限

      IAM 在您的帳戶中包含受 AWS 管政策和客戶管理政策的清單。

    2. 選取用於許可界限的政策。

  8. 選擇下一步

  9. 輸入角色名稱或角色名稱尾碼,以協助您識別角色的用途。

    重要

    命名角色時,請注意下列事項:

    • 角色名稱在您的內部必須是唯一的 AWS 帳戶,並且不能根據大小寫將其唯一。

      例如,請勿建立同時命名為PRODROLE和的角色prodrole。當角色名稱用於策略中或作為 ARN 的一部分時,角色名稱會區分大小寫,但是當主控台中的客戶 (例如在登入程序期間) 顯示角色名稱時,角色名稱不區分大小寫。

    • 您無法在建立角色之後編輯該角色的名稱,因為其他實體可能會參照該角色。

  10. (選擇性) 在說明中,輸入角色的說明。

  11. (選擇性) 若要編輯角色的使用案例和權限,請在步驟 1:選取信任的實體步驟 2:新增權限區段中,選擇編輯

  12. (選擇性) 若要協助識別、組織或搜尋角色,請將標籤新增為鍵值配對。如需有關在 IAM 中使用標籤的詳細資訊,請參閱《IAM 使用者指南》中的標記 IAM 資源

  13. 檢閱角色,然後選擇 Create role (建立角色)。

下列 JSON 文件是信任政策的範例,該政策允許 QLDB 假設具有附加特定許可的 IAM 角色。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "qldb.amazonaws.com" }, "Action": [ "sts:AssumeRole" ], "Condition": { "ArnEquals": { "aws:SourceArn": "arn:aws:qldb:us-east-1:123456789012:stream/myExampleLedger/*" }, "StringEquals": { "aws:SourceAccount": "123456789012" } } } ] }
注意

此信任原則範例顯示如何使用aws:SourceArnaws:SourceAccount全域條件內容索引鍵來防止混淆的副問題。透過此信任原則,QLDB 只能擔任分類帳帳戶123456789012中任何 QLDB 串流的角色。myExampleLedger

如需詳細資訊,請參閱 預防跨服務混淆代理人

建立 IAM 角色後,返回 QLDB 主控台並重新整理「建立 QLDB 串流」頁面,以便找到您的新角色。