理系学生日記

おまえはいつまで学生気分なのか

Route 53で取得したドメインを別のAWSアカウントに移管する

Route 53で登録した自分のドメインを、別のAWSアカウントへ移管する必要が生じました。 この方法については、異なる AWS アカウントへのドメインの移管で紹介されています。

今回は、AWS CLIを利用して移管を実施しました。マネジメントコンソールからは実行できないようです。

手順

大まかな流れは、以下の通りです。シンプルですね。

  1. 移行元アカウントから、移管リクエスト
  2. 移行先アカウントにて、移管リクエストを受諾
$ aws --version
aws-cli/2.8.3 Python/3.10.8 Darwin/22.4.0 source/arm64 prompt/off

移管リクエストの実行

まずは、移行元のアカウントから移管リクエストを行います。このためには、transfer-domain-to-another-aws-accountを実行します。 この結果として、OperationIdとパスワードが返却されます。

$ aws route53domains transfer-domain-to-another-aws-account \
  --region us-east-1 \
  --domain-name example.com \
  --account-id xxxxxxxxxxxx
{
    "OperationId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "Password": "xxxxxxxxxxxx"
}

OperationIdは、今回のリクエストに対する一意識別子で、get-operation-detailによって、当該リクエストの状況の問い合わせができます。

$ aws route53domains get-operation-detail \
  --region us-east-1 \
  --operation-id "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
{
    "OperationId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "Status": "SUCCESSFUL",
    "DomainName": "example.com",
    "Type": "DOMAIN_LOCK",
    "SubmittedDate": "2023-04-23T12:34:49.088000+09:00"
}

パスワードは、次に行う「リクエストの受諾」時に必要なパラメータです。

移管リクエストの受諾

移管リクエストの受諾は、移管先のアカウントで行います。アクセスキー等を間違えないようにしましょう。 --passwordの引数は、先ほどのtransfer-domain-to-another-aws-accountのレスポンスに含まれるパスワードです。

$ aws route53domains accept-domain-transfer-from-another-aws-account \
  --region us-east-1 \
  --domain-name example.com \
  --password "xxxxxxxxxxxxx"
{
    "OperationId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}

これで移管が完了します。ちゃんと移行ができているようですね。

$ aws route53domains list-domains --region us-east-1
{
    "Domains": [
        {
            "DomainName": "example.com",
            "AutoRenew": true,
            "TransferLock": false,
            "Expiry": "2023-11-14T15:04:45+09:00"
        }
    ]
}