ヤマムギ

growing hard days.

*

Route 53サブドメインホストゾーンを作成したら、元のホストゾーンにNSレコードを作成する自動化

   

ハンズオン環境でRoute 53のホストゾーンを触ってほしい際に、サブドメインを設定する場合があります。
複数アカウントでセットアップを自動化したかったので、構築しました。

動作

元のドメインがexample.comだとします。
サブドメインの123はアカウントIDを想定しています。

  1. アカウントBでRoute 53に123.example.comホストゾーンが作成される
  2. EventBridgeがイベントを検知してLambda関数を実行
  3. Lambda関数がアカウントAのDynamoDBテーブルにレコードを追加
  4. DynamoDBストリームがアカウントAのLambda関数をトリガー
  5. アカウントAのLambda関数がexample.comのホストゾーンにNSレコード123.example.comを作成

これで、アカウントBのRoute 53で、www.123.example.comなどを作成して、レコードセット設定のハンズオンができます。

GitHub

CloudFormationテンプレートはGitHubにあります。
Lambdaのコードもテンプレートにインラインにしています。

https://github.com/yamamanx/route53-creatensrecord

EventBridgeのルール

CloudFormationで自動作成しているので、ホストゾーンを限定しています。

ターゲットはLambda関数です。
Lambda関数では、クロスアカウントのDynamoDBテーブルにPutItemするので、boto3で指定しているテーブル名はARNにしています。
CreateHostedZoneの際はoperation=”create”、DeleteHostedZoneの際はoperation=”delete”でPutItemのみ許可されるようにしています。
Lambda関数はCloudFormationテンプレートにあります。

DynamoDBのリソースベースポリシー

昨年DynamoDBにリソースベースのポリシーが追加されましたので、それを利用しています。
ハンズオン用のアカウントBは元のドメインを管理しているアカウントAとは同じOrganizations組織にあります。

そこで次のようなポリシーにしました。
PutItemのみを組織内のアカウントで許可されたプリンシパルから受け付けます。


最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS , ,

ad

ad

  関連記事

AWS Transfer Family EFS向けのSFTP対応サーバー

EFSファイルシステムは作成済です。 AWS Transfer Family S …

AWS CodeBuildのチュートリアルをやってみました

こちらユーザーガイドの最初の方にあるチュートリアルです。 コンソールを使用した …

AWS 認定クラウドプラクティショナーのサンプル問題

AWS認定クラウドプラクティショナのサンプル問題2018年9月25日現在で、英語 …

Projectタグを強制するSCPでアクションやリソースを限定しないとき成り立つのか

ふと疑問に思ったので試しました。 予想は、拒否されてしまう、です。 [crayo …

AWS Client VPNの接続ログを確認しました

AWS Client VPNを設定しましたで証明書とかせっかく作ったので、いろい …

AWS Service CatalogポートフォリオをOrganizations組織で共有する

AWS Service Catalogチュートリアルで作成したポートフォリオのO …

RDS + VPC + Lambda + API Gateway + CloudFront + WAF + ACMでAPIを構築する

RDSのMySQLの情報を与えられたリクエストをキーにしてjsonで返すAPIを …

API Gateway 作成済REST APIの定義をSwaggerの形式でエクスポート

SAMで似たようなAPIを作りたくて、エクスポートしました。 Swaggerは、 …

AWS Systems Manager Session Managerでログを有効にする

AWS Systems Manager Session Managerでのコマン …

TwilioからのリクエストをAPI Gateway+LambdaでTwimlを返して処理する

Twilioで着信した時のリクエスト先としてTwimlをWebサーバやS3で用意 …