了解在配置两个 AWS 账户之间私有 IP 的 DNS 时所需的各种 AWS IAM 角色和权限。 这些角色或权限确保在具有适当访问控制的 AWS 账户之间安全地解析 DNS 查询。

注:

验证两个账户中的 VPC 是否已正确建立对等连接。 有关 VPC 对等连接的更多信息,请参阅 在 AWS 账户之间设置 VPC 对等连接

Control Room 账户权限

IAM 用户或角色需要在 Control Room AWS 账户中具备以下权限:

Route 53 权限
  • route53:CreateHostedZone - 用于创建新的托管区域。
  • route53:ListHostedZones - 列出所有托管区域。
  • route53:GetHostedZone - 检索特定托管区域的详细信息。
  • route53:ChangeResourceRecordSets - 用于创建、更新和删除 DNS 录制。
  • route53:ListResourceRecordSets - 用于列出托管区域中的DNS录制。
  • route53:CreateVPCAssociationAuthorization - 授权来自 API 任务 基础设施 AWS 账户的 VPC,以与 Control Room AWS 账户的托管区域关联。
  • route53:ListVPCAssociationAuthorizations - 列出现有的 VPC 关联授权。
VPC 权限
ec2:DescribeVpcs - 用于检索一个或多个虚拟私有云(VPC)的信息。
ACM 权限
  • acm:RequestCertificate - 请求新证书。
  • acm:DescribeCertificate - 检索特定证书的详细信息。
  • acm:ListCertificates - 列出所有证书。
EC2 负载均衡器权限
  • elasticloadbalancing:DescribeLoadBalancers - 检索所有负载均衡器的详细信息。
  • elasticloadbalancing:CreateListener - 为负载均衡器创建一个新的监听器。
  • elasticloadbalancing:ModifyListener - 修改现有的监听器。
  • elasticloadbalancing:DescribeListeners - 检索所有监听器的详细信息。
以下是策略示例:
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Route53Permissions",
      "Effect": "Allow",
      "Action": [
        "route53:CreateHostedZone",
        "route53:ListHostedZones",
        "route53:GetHostedZone",
        "route53:ChangeResourceRecordSets",
        "route53:ListResourceRecordSets",
        "route53:CreateVPCAssociationAuthorization",
        "route53:ListVPCAssociationAuthorizations"
      ],
      "Resource": ""
    },
    {
      "Sid": "AllowDescribeVpcs",
      "Effect": "Allow",
      "Action": "ec2:DescribeVpcs",
      "Resource": ""
    },
    {
      "Sid": "ACMPermissions",
      "Effect": "Allow",
      "Action": [
        "acm:RequestCertificate",
        "acm:DescribeCertificate",
        "acm:ListCertificates"
      ],
      "Resource": ""
    },
    {
      "Sid": "ELBPermissions",
      "Effect": "Allow",
      "Action": [
        "elasticloadbalancing:DescribeLoadBalancers",
        "elasticloadbalancing:CreateListener",
        "elasticloadbalancing:ModifyListener",
        "elasticloadbalancing:DescribeListeners"
      ],
      "Resource": ""
    }
  ]
}

Resource 参数中输入您的 Amazon 资源名称 (ARN)。

API 任务 账户权限

IAM 用户或角色需要在 API 任务 AWS 账户中具备以下权限:

Route 53 权限
route53:AssociateVPCWithHostedZone - 将 VPC 关联到托管区域。 此权限允许您将 API 任务 AWS 账户中的 VPC 与 Control Room AWS 账户中的私有托管区域关联。
VPC 权限
ec2:DescribeVpcs - 用于检索一个或多个虚拟私有云(VPC)的信息。
以下是策略示例:
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Route53Permissions",
      "Effect": "Allow",
      "Action": "route53:AssociateVPCWithHostedZone ",
      "Resource": ""
    },
    {
      "Sid": "AllowDescribeVpcs",
      "Effect": "Allow",
      "Action": "ec2:DescribeVpcs",
      "Resource": ""
    }
  ]
}

Resource 参数中输入您的 Amazon 资源名称 (ARN)。

信任关系策略

对于跨账户操作,IAM 角色或两个账户中的用户必须配置必要的信任关系。 信任关系是一种策略,您可以将其添加到 IAM 角色中,并指定哪些受信任的实体或服务可以承担该 IAM 角色。 请参照示例,在 Control Room 账户的 IAM 策略中创建信任关系策略,以允许 API 任务 账户中的 IAM 角色访问 Control Room 账户中的 IAM 角色。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::ACCOUNT_B_ID:role/RoleNameInAccountB"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

其中,ACCOUNT_B_ID 是账户名称,RoleNameInAccountBAPI 任务 账户中的 IAM 角色。