手动设置数据库身份验证和资源访问权限 - Amazon Aurora
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

手动设置数据库身份验证和资源访问权限

手动设置数据库身份验证和资源访问权限的流程包括以下步骤:

此步骤为可选项,执行的任务与 使用脚本设置数据库身份验证和资源访问权限 中相同。建议使用脚本。

创建客户托管的 Amazon KMS key

按照创建对称加密密钥中的过程创建客户托管的 KMS 密钥。如果满足这些要求,您也可以使用现有密钥。

创建客户托管的 KMS 密钥
  1. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon KMS 控制台:https://console.aws.amazon.com/kms

  2. 导航到客户托管的密钥页面。

  3. 选择创建密钥

  4. 配置密钥页面上:

    1. 对于密钥类型,选择对称

    2. 对于密钥用途,选择加密和解密

    3. 选择下一步

  5. 添加标签页面上,输入别名,例如 limitless,然后选择下一步

  6. 定义密钥管理员权限页面上,确保选中允许密钥管理员删除此密钥复选框,然后选择下一步

  7. 定义密钥使用权限页面上,选择下一步

  8. 检查页面上,选择完成

    您可以稍后更新密钥策略。

记录要在 添加 IAM 角色权限策略 中使用的 KMS 密钥的 Amazon 资源名称(ARN)。

有关使用 Amazon CLI 创建客户托管的 KMS 密钥的信息,请参阅 create-keycreate-alias

创建数据库密钥

要允许数据加载实用程序访问源数据库表和目标数据库表,请在 Amazon Secrets Manager 中创建两个密钥:一个用于源数据库,另一个用于目标数据库。这些密钥存储访问源数据库和目标数据库的用户名和密码。

按照创建 Amazon Secrets Manager 密钥中的过程创建键值对密钥。

创建数据库密钥
  1. 通过 https://console.aws.amazon.com/secretsmanager/ 打开 Secrets Manager 控制台。

  2. 选择存储新密钥

  3. 选择密钥类型页面上:

    1. 对于密钥类型,选择其他密钥类型

    2. 对于键/值对,选择纯文本标签。

    3. 输入以下 JSON 代码,其中 sourcedbreadersourcedbpassword创建源数据库凭证 中源数据库用户的凭证。

      { "username":"sourcedbreader", "password":"sourcedbpassword" }
    4. 对于加密密钥,选择您在 创建客户托管的 Amazon KMS key 中创建的 KMS 密钥,例如 limitless

    5. 选择下一步

  4. 配置密钥页面上,输入密钥名称,例如 source_DB_secret,然后选择下一步

  5. 配置旋转 - 可选页面上,选择下一步

  6. 检查页面上,选择存储

  7. 对目标数据库密钥重复此过程:

    1. 输入以下 JSON 代码,其中 destinationdbwriterdestinationdbpassword创建目标数据库凭证 中目标数据库用户的凭证。

      { "username":"destinationdbwriter", "password":"destinationdbpassword" }
    2. 输入密钥名称,例如 destination_DB_secret

记录要在 添加 IAM 角色权限策略 中使用的密钥的 ARN。

创建 IAM 角色

数据加载需要您提供对 Amazon 资源的访问权限。要提供访问权限,您可以按照创建角色,为 IAM 用户授权中的流程创建 aurora-data-loader IAM 角色。

创建 IAM 角色
  1. 登录 Amazon Web Services Management Console,然后打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 导航到角色页面。

  3. 选择创建角色

  4. 选择可信实体页面:

    1. 对于可信实体类型,选择自定义信任策略

    2. 为自定义信任策略输入以下 JSON 代码:

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "rds.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
    3. 选择下一步

  5. 添加权限页面上,选择下一步

  6. 名称、检查和创建页面:

    1. 对于角色名称,输入 aurora-data-loader 或您喜欢的其他名称。

    2. 选择添加标签,然后输入以下标签:

      • assumer

      • aurora_limitless_table_data_load

      重要

      Aurora PostgreSQL Limitless Database 只能担任具有此标签的 IAM 角色。

    3. 选择创建角色

更新客户托管的 Amazon KMS key

按照更改密钥策略中的过程将 IAM 角色 aurora-data-loader 添加到默认密钥策略。

将 IAM 角色添加到密钥策略
  1. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon KMS 控制台:https://console.aws.amazon.com/kms

  2. 导航到客户托管的密钥页面。

  3. 选择您在 创建客户托管的 Amazon KMS key 中创建的 KMS 密钥,例如 limitless

  4. 密钥策略选项卡,对于密钥用户,选择添加

  5. 添加密钥用户窗口,选择您在 创建 IAM 角色 中创建的 IAM 角色名称,例如 aurora-data-loader

  6. 选择添加

添加 IAM 角色权限策略

您必须将权限策略添加到您创建的 IAM 角色。这将允许 Aurora PostgreSQL Limitless Database 数据加载实用程序访问相关 Amazon 资源,以建立网络连接并检索源和目标数据库凭证密钥。

有关更多信息,请参阅修改角色

添加权限策略
  1. 登录 Amazon Web Services Management Console,然后打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 导航到角色页面。

  3. 选择您在 创建 IAM 角色 中创建的 IAM 角色,例如 aurora-data-loader

  4. 权限选项卡,对于权限策略,选择添加权限,然后创建内联策略

  5. 指定权限页面上,选择 JSON 编辑器。

  6. 将以下模板复制并粘贴到 JSON 编辑器中,用数据库密钥和 KMS 密钥的 ARN 替换占位符。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "Ec2Permission", "Effect": "Allow", "Action": [ "ec2:DescribeNetworkInterfaces", "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfacePermissions", "ec2:ModifyNetworkInterfaceAttribute", "ec2:DescribeNetworkInterfaceAttribute", "ec2:DescribeAvailabilityZones", "ec2:DescribeRegions", "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:DescribeNetworkAcls" ], "Resource": "*" }, { "Sid": "SecretsManagerPermissions", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ], "Resource": [ "arn:aws:secretsmanager:us-east-1:123456789012:secret:source_DB_secret-ABC123", "arn:aws:secretsmanager:us-east-1:123456789012:secret:destination_DB_secret-456DEF" ] }, { "Sid": "KmsPermissions", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:DescribeKey", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-east-1:123456789012:key/aa11bb22-####-####-####-fedcba123456" }, { "Sid": "RdsPermissions", "Effect": "Allow", "Action": [ "rds:DescribeDBClusters", "rds:DescribeDBInstances" ], "Resource": "*" } ] }
  7. 检查是否有错并纠正错误。

  8. 选择下一步

  9. 检查并创建页面上,输入策略名称,例如 data_loading_policy,然后选择创建策略