(※2023-10-18に書いた個人ブログの転記です。)
概要
別のAWSアカウントで管理しているドメインのサブドメインを、別のAWSアカウントで使いたい。そんな時は、サブドメインを別のAWSアカウントのHosted Zoneに権限委譲すれば良い。それをCDKで行う手順をまとめる。
例として、以下のような状態を想定する。
- AWSアカウント1(ドメインを管理している)
- masatora.com
- AWSアカウント2(委譲先)
- stg.masatora.com←使いたいサブドメイン
手順とCDK
① AWSアカウント2(委譲先)でホストゾーンを作成する
private createBuyerAJAVisionZone() {
return new route53.PublicHostedZone(this, 'HostedZone', {
zoneName: 'stg.masatora.com',
})
}
② 1で作成されたホストゾーンのNSレコードの値をコピー
③ AWSアカウント1(ドメインを管理している)でNSレコードを作成する
new route53.NsRecord(this, 'NsRecord', {
zone: hostedZone,
recordName: 'stg',
values: [
// ここに2でコピーしたNSレコードの値を入れる(4つある。追加も削除もせず全部入れることを推奨
],
})
参考
- ほぼこれを見ながらやった→[Route 53] 別のAWSアカウントでサブドメインを使えるように権限移譲する
-
Amplifyのカスタムドメインの設定
- 今回はAmplifyに設定したかったので。AmplifyではSSL/TLS証明書は自動発行・更新してくれる。
- https://docs.aws.amazon.com/ja_jp/Route53/latest/DeveloperGuide/SOA-NSrecords.html