[アップデート] Route 53 がAPIによるAWSアカウント間のドメイン移管をサポートしました!
Amazon Route 53 において、APIによるAWSアカウント間ドメイン移管がサポートされました。 Amazon Route 53 supports Domain Name Transfer between AWS accounts
チケット起票が不要に!
AWSアカウント間ドメイン移管は従前から可能でした。ただし、サポートチケットを起票しAWSに作業を依頼する必要がありました。 この度のアップデートはドメイン移管のためのAPIを追加したものであり、これを利用することでサポートチケットの起票が不要になります。
サポートチケット経由のドメイン移管作業も引き続き実施できます。 起票の手順については下記ドキュメントをご参照ください。 異なる AWS アカウントへのドメインの移管
やってみた
Account A
の Route 53 で取得したドメインXをAccount B
に移管してみます。
Account A
からドメイン移管のリクエストを送信した後、Account B
にて当該リクエストを承認することで移管が実行されます。
ドメイン移管のリクエスト
使用するAPIは TransferDomainToAnotherAwsAccount です。 今回は Boto 3 を使用して試してみます。
Account A
において下記のコードを実行します。
import boto3 client = boto3.client('route53domains', region_name='us-east-1') # Route 53 はグローバルサービスであるため、`region_name`には`us-east-1`を指定する response = client.transfer_domain_to_another_aws_account( DomainName='<移管対象のドメイン名>', AccountId='<移管対象のアカウントID(12桁)>' ) print(response)
問題がなければ下記のようなレスポンスが表示されます。
{'OperationId': 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 'Password': '<PASSWORD>', 'ResponseMetadata': {'RequestId': 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': 'yyyyyyyy-yyyy-yyyy-yyyy-yyyy', 'content-type': 'application/x-amz-json-1.1', 'content-length': '84', 'date': 'Wed, 22 Apr 2020 07:08:08 GMT'}, 'RetryAttempts': 0}}
レスポンスに含まれるPASSWORD
がリクエスト承認時に必要になるため控えておきます。
ドメイン移管の承認
使用するAPIは AcceptDomainTransferFromAnotherAwsAccount です。
Account B
において下記のコードを実行します。
import boto3 client = boto3.client('route53domains', region_name='us-east-1') response = client.accept_domain_transfer_from_another_aws_account( DomainName='<移管対象のドメイン名>', Password='<PASSWORD>' )
確認
マネジメントコンソールからAPI実行後の様子を確認してみます。
Account A側
ドメインの移管が成功した旨が表示されます。
また、登録済みドメインの一覧からドメインXがなくなっています。
Account B側
登録済みドメイン一覧にドメインXが存在しています。 ドメイン移管ができたことを確認できました。
ホストゾーンに関する注意点
上述の操作によって実行されるのはドメイン移管のみであり、ホストゾーンも移行したい場合は別の手順を踏む必要があります。 詳細については下記ドキュメントをご参照ください。 別の AWS アカウントへのホストゾーンの移行
終わりに
このブログがほんの少しでも世界を良くできれば嬉しいです。 コンサルティング部の西野(@xiyegen)がお送りしました。