ヤマムギ

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のルール

対象アカウントが限定的なので、ホストゾーンの作成、削除はすべて対応としています。

ターゲットは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

  関連記事

Amazon Cognito User Poolsのデモをしてみました

AWS Summit 2016 Tokyoのアップデートおっかけ会をJAWS-U …

Amazon SES, S3で受信したメールをAWS Lambda, SESで別のメールへ転送する

Amazon SESでメール受信で受信したメールを、毎回S3バケットに見に行って …

ヤマムギvol.23 Amazon RDS for MySQLとAmazon Aurora Serverlessの起動のデモをしました

ゴールデンウィーク毎朝デモ勉強会は終わったのですが、土曜日にやれるときがあれば、 …

Amazon Augmented AI (Amazon A2I) のチュートリアル

Amazon Augmented AI (Amazon A2I)を使ったことがあ …

macOSにAWS Schema Conversion Toolをインストール

環境 macOS BigSur バージョン11.5(20G71) MacBook …

IAMユーザーのマネジメントコンソールログインパスワードを変更してDynamoDBに記録するLambda(Python)

やりたいこと IAMユーザーのマネジメントコンソールへのサインインパスワードを動 …

IAMアクセス許可の境界でIAMロールの権限を制御する

IAMユーザー自身の権限はIAMポリシーで制御できますが、IAMユーザーにIAM …

Amazon Quantum Ledger Database(QLDB)でサンプル台帳の作成と検証

Quantum Ledger Database(QLDB)を触ったことなかったの …

EC2 Ubuntu DesktopにRDP

Ubuntu Desktopが必要になりましたので、こちらのAWS EC2でデス …

S3バケットポリシーでクロスアカウントのPrincipalについて確認

確認したこと ドキュメントではこちらで確認しました。 AWS JSON ポリシー …