中的日记导出权限 QLDB - 亚马逊 Quantum Ledger 数据库(亚马逊QLDB)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

中的日记导出权限 QLDB

重要

终止支持通知:现有客户将能够使用亚马逊,QLDB直到 2025 年 7 月 31 日终止支持。有关更多详细信息,请参阅将亚马逊QLDB账本迁移到亚马逊 Aurora Postgr SQL e。

在亚马逊提交日记导出请求之前QLDB,您必须在指定的 Amazon S3 存储桶中提供QLDB写入权限。如果您选择客户托管 AWS KMS key 作为 Amazon S3 存储桶的对象加密类型,您还必须QLDB提供使用您指定的对称加密密钥的权限。Amazon S3 不支持非对称KMS密钥

要为您的导出任务提供必要的权限,您可以让QLDB代入具有相应权限策略的IAM服务角色。服务IAM角色是服务代替您执行操作的角色。IAM管理员可以在内部创建、修改和删除服务角色IAM。有关更多信息,请参阅创建角色以向某人委派权限 AWS 服务(在 IAM 用户指南中)。

注意

要在请求日记导出QLDB时将角色传递给,您必须具有对IAM角色资源执行iam:PassRole操作的权限。这是对QLDB账本资源的qldb:ExportJournalToS3权限的补充。

要了解如何控制对QLDB使用的访问权限IAM,请参阅亚马逊是如何QLDB与之合作的 IAM。有关QLDB策略示例,请参阅Amazon 基于身份的政策示例 QLDB

在此示例中,您创建了一个QLDB允许代表您向 Amazon S3 存储桶写入对象的角色。有关更多信息,请参阅创建角色以向某人委派权限 AWS 服务(在 IAM 用户指南中)。

如果您要在自己的QLDB日记中导出日记 AWS 账户 首先,您必须通过执行以下操作来创建具有相应策略的IAM角色。或者,您可以使用QLDB控制台自动为您创建角色。否则,您可以选择之前创建的角色。

创建权限策略

完成以下步骤,为QLDB日记导出任务创建权限策略。此示例显示了 Amazon S3 存储桶策略,该策略授予将对象写入指定存储桶的QLDB权限。如果适用,该示例还显示了允许QLDB使用您的对称加密密钥的KMS密钥策略。

有关 Amazon S3 的存储桶策略的更多信息,请参阅 Amazon Simple Storage Service 用户指南中的使用存储桶策略和用户策略。了解相关更多信息 AWS KMS 密钥策略,请参阅中的使用密钥策略 AWS KMS中的 AWS Key Management Service 开发者指南

注意

您的 Amazon S3 存储桶和KMS密钥必须位于同一个存储桶中 AWS 区域 作为你的QLDB账本。

使用JSON策略编辑器创建策略
  1. 登录 AWS Management Console 然后打开IAM控制台,网址为https://console.aws.amazon.com/iam/

  2. 在左侧的导航栏中,选择 Policies(策略)

    如果这是您首次选择 Policies,则会显示 Welcome to Managed Policies 页面。选择开始使用

  3. 在页面的顶部,选择 Create Policy(创建策略)

  4. 选择JSON选项卡。

  5. 输入JSON政策文档。

    • 如果您使用客户托管KMS密钥进行 Amazon S3 对象加密,请使用以下示例策略文档。要使用此政策,请替换 amzn-s3-demo-bucket, us-east-1, 123456789012,以及 1234abcd-12ab-34cd-56ef-1234567890ab 在示例中包含您自己的信息。

      { "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBJournalExportS3Permission", "Action": [ "s3:PutObjectAcl", "s3:PutObject" ], "Effect": "Allow", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" }, { "Sid": "QLDBJournalExportKMSPermission", "Action": [ "kms:GenerateDataKey" ], "Effect": "Allow", "Resource": "arn:aws:kms:us-east-1:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ] }
    • 对于其他加密类型,请使用以下示例策略文档。要使用此政策,请替换 amzn-s3-demo-bucket 在示例中,使用您自己的 Amazon S3 存储桶名称。

      { "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBJournalExportS3Permission", "Action": [ "s3:PutObjectAcl", "s3:PutObject" ], "Effect": "Allow", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }
  6. 选择查看策略

    注意

    您可以随时在可视化编辑器和JSON选项卡之间切换。但是,如果您进行更改或在 “可视化编辑器” 选项卡中选择 “查看策略”,则IAM可能会重构您的策略以针对可视化编辑器对其进行优化。有关更多信息,请参阅《IAM用户指南》中的策略重组

  7. Review policy(查看策略)页面上,为创建的策略输入 Name(名称)Description(说明)(可选)。查看策略摘要以查看您的策略授予的权限。然后,选择创建策略以保存您的工作。

创建 IAM 角色

为QLDB日记导出任务创建权限策略后,您可以创建一个IAM角色并将您的策略附加到该角色上。

为QLDB(IAM控制台)创建服务角色
  1. 登录 AWS Management Console 然后打开IAM控制台,网址为https://console.aws.amazon.com/iam/

  2. 在IAM控制台的导航窗格中,选择角色,然后选择创建角色

  3. 对于 “可信实体” 类型,选择 AWS 服务.

  4. 对于 “服务” 或 “用例QLDB,选择,然后选择QLDB用例。

  5. 选择下一步

  6. 选中您之前创建的策略旁边的方框。

  7. (可选)设置权限边界。这是一项高级特征,可用于服务角色,但不可用于服务相关角色。

    1. 打开设置权限边界部分,然后选择使用权限边界控制最大角色权限

      IAM包括清单 AWS 您账户中的托管和客户托管政策。

    2. 选择要用于权限边界的策略。

  8. 选择下一步

  9. 输入有助于识别角色的作用的角色名称或者角色名称后缀。

    重要

    命名角色时,请注意以下事项:

    • 角色名称在您的角色中必须是唯一的 AWS 账户,并且不能因案例而独树一帜。

      例如,不要同时创建名为 PRODROLEprodrole 的角色。在策略中使用角色名或作为策略的一部分使用角色名称时ARN,角色名称区分大小写,但是当用户在控制台中看到角色名称时,例如在登录过程中,角色名称不区分大小写。

    • 创建角色后,您无法编辑该角色的名称,因为其他实体可能会引用该角色。

  10. (可选)对于描述,输入角色的描述。

  11. (可选)要编辑角色的使用案例和权限,请在步骤 1:选择可信实体步骤 2:添加权限部分中选择编辑

  12. (可选)为了帮助识别、组织或搜索角色,请以键值对形式添加标签。有关在中使用标签的更多信息IAM,请参阅《IAM用户指南》中的为IAM资源添加标签

  13. 检查该角色,然后选择创建角色

以下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:*" }, "StringEquals": { "aws:SourceAccount": "123456789012" } } } ] }
注意

以下示例演示如何使用 aws:SourceArnaws:SourceAccount 全局条件上下文键来防范混淆代理问题。使用此信任策略,QLDB123456789012只能担任账户中任何QLDB资源的角色。

有关更多信息,请参阅 防止跨服务混淆代理

创建IAM角色后,返回QLDB控制台并刷新 “创建导出任务” 页面,以便它可以找到您的新角色。