2つの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 - 1つ以上の仮想プライベートクラウド(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": ""
    }
  ]
}

リソース パラメータにあなたの Amazon リソース名 (ARN) を入力してください。

API タスク のアカウント権限

IAM ユーザーまたはロールは、API タスク AWSアカウントで以下の権限を必要とします:

Route 53 の権限
route53:AssociateVPCWithHostedZone - VPC をホストゾーンに関連付ける この権限により、API タスク AWS アカウントの VPC を Control Room AWS アカウントのプライベートホストゾーンに関連付けることができます。
VPC の権限
ec2:DescribeVpcs - 1つ以上の仮想プライベートクラウド(VPC)に関する情報を取得
以下はポリシーの例です。
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Route53Permissions",
      "Effect": "Allow",
      "Action": "route53:AssociateVPCWithHostedZone ",
      "Resource": ""
    },
    {
      "Sid": "AllowDescribeVpcs",
      "Effect": "Allow",
      "Action": "ec2:DescribeVpcs",
      "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 ロールです。