Amazon Route 53 リソース (例: プライベートホストゾーン、Resolver エンドポイント) へのアクセスを、複数 AWS アカウントにわたり構成し、管理したいと考えています。
解決策
注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
クロスアカウントアクセスを構成するには、セントラル DNS アカウントと 1 つ以上のメンバーアカウントを作成します。セントラル DNS アカウントは、プライマリ Amazon Route 53 の構成をホストし、プライベートホストゾーンを管理し、Route 53 Resolver エンドポイントを制御します。メンバーアカウントには、セントラルアカウントから DNS サービスへのアクセスを必要とするリソースが含まれます。たとえば、メンバーアカウントのリソースでは、セントラルアカウント内のプライベートホストゾーンのレコードを DNS 解決する必要が生じることがあります。
アカウントを設定する
セントラルアカウントとメンバーアカウントで次の手順を実行し、転送を設定します。
- セントラルアカウントで次の create-hosted-zone コマンドを実行し、レコードを持つプライベートホストゾーンを作成します。
aws route53 create-hosted-zone \
--name example.internal \
--vpc VPCRegion=us-east-1,VPCId=vpc-xxxxx \
--caller-reference $(date +%s)
注: example.internal をホストゾーン名に、vpc-xxxxx を VPCId に置き換えてください。
- セントラルアカウントで次の create-resolver-endpoint コマンドを実行し、インバウンドエンドポイントを作成します。
aws route53resolver create-resolver-endpoint \
--creator-request-id inbound-endpoint \
--direction INBOUND \
--ip-addresses \
SubnetId=subnet-xxxxx,Ip=10.0.0.10 \
SubnetId=subnet-yyyyy,Ip=10.0.1.10 \
--security-group-ids sg-xxxxx
注: subnet-xxxxx と subnet-yyyyy をサブネット ID に、10.0.0.10 と 10.0.1.10 を IP アドレスに、sg-xxxxx をセキュリティグループ ID に置き換えてください。
- メンバーアカウントで次の create-resolver-endpoint コマンドを実行し、アウトバウンドエンドポイントを作成します。
aws route53resolver create-resolver-endpoint \
--creator-request-id outbound-endpoint \
--direction OUTBOUND \
--ip-addresses \
SubnetId=subnet-xxxxx \
SubnetId=subnet-yyyyy \
--security-group-ids sg-yyyyy
注: subnet-xxxxx and subnet-yyyyy をサブネット ID に、sg-xxxxx をセキュリティグループ ID に置き換えてください。
- メンバーアカウントで次の create-resolver-rule コマンドを実行し、アウトバウンド Resolver ルールを作成します。
aws route53resolver create-resolver-rule \
--creator-request-id rule1 \
--domain-name example.internal \
--rule-type FORWARD \
--resolver-endpoint-id rslvr-endpoint-id \
--target-ips Ip=10.0.0.10
注: rule1 をルール名に、example.internal をホストゾーン名に、rslvr-endpoint-id を Resolver エンドポイント ID に、10.0.0.10 を IP アドレスに置き換えてください。
Amazon Route 53 プロファイルを使用してリソースを共有する
Amazon Route 53 プロファイルを使用し、プライベートホストゾーンまたはアウトバウンド Resolver ルールを共有することもできます。
次の手順を実行します。
- セントラルアカウントに Route 53 プロファイルを作成します。
- プライベートホストゾーンまたは Resolver ルールを Route 53 プロファイルに関連付けます。
- AWS Resource Access Manager (AWS RAM) を使用し、Route 53 プロファイルをメンバーアカウントと共有します。
- Amazon VPC をメンバーアカウント内の Route 53 プロファイルに関連付けます。
Amazon VPC を使用してリソースを共有する
メンバーアカウント内の Amazon Virtual Private Cloud (Amazon VPC) リソースに、セントラルアカウント内のプライベートホストゾーンのレコードへのアクセスを許可します。
次の手順を実行します。
- セントラルアカウントにプライベートホストゾーンを作成します。
- プライベートホストゾーンをメンバーアカウント内の Amazon VPC に関連付けます。
AWS RAM を使用して Resolver ルールと AWS リソースを共有する
AWS RAM を使用すると、セントラルアカウントの Resolver ルールと AWS リソースを共有できます。
また、Resolver ルールを AWS Organizations または組織単位 (OU) に属する複数アカウントに共有することもできます。各アカウントを列挙するのではなく、AWS RAM を使用することで、アウトバウンド Resolver ルールを AWS Organizations と共有できます。
セントラルアカウントで次の手順を実行します。
-
AWS RAM を設定するには、次の enable-sharing-with-aws-organization を実行します。
aws ram enable-sharing-with-aws-organization
-
Resolver ルールのリソース共有を作成するには、次の create-resource-share コマンドを実行します。
aws ram create-resource-share \
--name "dns-share" \
--resource-arns arn:aws:route53resolver:region:account-id:resolver-rule/resolver-rule
--principals arn:aws:organizations::account-id:organization/o-xxxxxxxxxx
注: dns-share をリソース共有名に、region をリージョンに、account-id をアカウント ID に、resolver-rule を Resolver ルールに、o-xxxxxxxxxx を組織に置き換えてください。
アウトバウンド Resolver ルールをメンバーアカウント内の VPC に関連付ける
次の手順を実行します。
- Route 53 コンソールを開きます。
- ナビゲーションペインで [ルール] を選択します。
- ルールを作成した AWS リージョンを選択します。
- VPC に関連付けるルールを選択します。
- [VPC を関連付ける] を選択します。
- [このルールを使用する VPC] で目的の VPC を選択します。
- [追加] を選択します。