View a markdown version of this page

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

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

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

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

创建客户托管的 AWS KMS key

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

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

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

  3. 选择创建密钥。

  4. 在配置密钥页面上:

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

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

    3. 选择下一步。

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

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

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

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

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

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

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

创建数据库密钥

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

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

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

  2. 选择存储新密钥。

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

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

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

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

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

    5. 选择下一步。

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

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

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

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

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

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

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

创建 IAM 角色

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

创建 IAM 角色
  1. 登录 AWS 管理控制台,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/。

  2. 导航到角色页面。

  3. 选择创建角色。

  4. 在选择可信实体页面:

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

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

      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. 选择创建角色。

更新客户托管的 AWS KMS key

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

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

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

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

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

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

  6. 选择添加。

添加 IAM 角色权限策略

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

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

添加权限策略
  1. 登录 AWS 管理控制台,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/。

  2. 导航到角色页面。

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

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

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

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

    JSON
    { "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,然后选择创建策略。