25/06/2023
なんでこんなことをやったのか 筆者が所属している会社には、AWSのいろいろなサービスを試行するためのプレイグラウンド的なアカウントがあり、筆者もそのアカウントに参加させてもらっています。 あるとき、CloudFormation Template で Webアプリサーバーを立ち上げ、それをHTTPS化して Cognito と連携させてみる、という作業をやっていました。まずは AWS Certificate Manager (ACM) を使って、HTTPS化に必要なSSL証明書を発行しようとしたのですが、その証明書が正しくドメインにひも付いていることを証明するために、DNS に証明書のIDを示す CNAME レコードを登録する必要があることが分かりました。 使用したドメイン自体は、これも試行作業用に作ったドメインなのですが、その管理は別アカウントの Route 53 で行われています。そこで、この試行作業用ドメインのDNS管理もプレイグラウンドアカウントで行えないかな、と考えたのがきっかけです。 権限移譲手順 手順としては下記となります。 対象ドメインを Route 53 のホストゾーンとして管理しているアカウントで、そのドメインの編集権限を別アカウントに移譲するようなポリシーを作成する 続いて、上記ポリシーを移譲先アカウントに適用するロールを作成する 移譲先のアカウントは、コンソールにログインした後、上記ロールに切り替える 以上です。 もう少し説明します 実際にやってみたら、いろいろと調べることが出てきましたが、手順を整理すると「以上」になります。以下、行間を埋めていきましょう。 移譲対象となるホストゾーンを元々管理しているアカウントを Account-A、移譲先のアカウントを Account-B で表すことにします。 1. 移譲ポリシーの作成 移譲用のロールにアタッチされるポリシーです。Account-A で作業します。 IAM コンソールの「ポリシー」の画面で「ポリシーの作成」をクリックします。 「ポリシーの作成」画面で「JSON」をクリックします。 ここに下記のJSONをコピペします。 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "route53:GetHostedZoneCount", "route53:ListHostedZonesByName" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "route53:*", "route53domains:*" ], "Resource": "arn:aws:route53:::hostedzone/" } ] }...
目次 1. なんでこんなことをやったのか […]