AWS Route53を使用したDNSリソースレコードのAPIによる許可設定

AWS側の設定

IAMポリシーの作成

route53-acme-dns-01

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "route53:ListHostedZones",
                "route53:ListHostedZonesByName"
            ],
            "Resource": "*",
            "Condition": {
                "ForAnyValue:IpAddress": {
                    "aws:SourceIp": [
                        "アクセス元IPアドレス帯"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "route53:GetChange",
            "Resource": "arn:aws:route53:::change/*",
            "Condition": {
                "ForAnyValue:IpAddress": {
                    "aws:SourceIp": [
                        "アクセス元IPアドレス帯"
                    ]
                }
            }
        }
    ]
}

route53-hosted-zone-ゾーン名

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "route53:ListResourceRecordSets",
                "route53:ChangeResourceRecordSets"
            ],
            "Resource": "arn:aws:route53:::hostedzone/ホステッドゾーンID",
            "Condition": {
                "ForAnyValue:IpAddress": {
                    "aws:SourceIp": [
                        "アクセス元IPアドレス帯"
                    ]
                }
            }
        }
    ]
}

IAMグループの作成

route53-acme-dns-01

用途
  • Let's Encrypt のSSL証明書自動更新のためのグループ。基本的なアクセス許可を提供する。
適用済ポリシー
  • route53-acme-dns-01

IAMユーザーの作成(例)

ユーザー名

所属グループ名

追加適用ポリシー

発行済みアクセスキー

運用サーバー(例)

route53-acme-client-wiki

route53-acme-dns-01

route53-acme-hosted-zone-ninth-nine.com

XXXXXXXXXXXXXXXXXXXX

wiki.ninth-nine.com

クライアント側の設定

インストール

クレデンシャルファイルの作成

mkdir -p -m 0700 ~root/.aws

[ユーザー名]
aws_access_key_id       = XXXXXXXXXXXXXXXXXXXX
aws_secret_access_key   = YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY

chmod 0600 ~root/.aws/credentials

aws --profile ユーザー名 configure list
   または
env AWS_PROFILE=ユーザー名 aws configure list

cli53 list --profile ユーザー名

よくある質問とその答え

Q.またまた~従量制なんだから高くなるんでないの?

A.ホスティングするゾーン(ドメイン)はYahoo、Googleクラスです!と言える者だけだが石を投げなさい。

料金表を見ながらの話になりますが、 標準クエリで100万クエリ/月を秒間(30日とする)で換算すると、0.39クエリ/秒になる。 まぁ個人サイトレベルなら余裕過ぎるレベル。

そこそこ目立つサイトで10クエリ/秒くらいだとすると(個人的見解です)、259万2千クエリ/月、それでも2USDも行かないくらい。

つまりワンコイン(500円)もあれば十分行ける数字ではある。

Q.Route53って言ってるけどIAMしか書いてないぢゃないっすか

A.大丈夫だ。問題無い。

Route53の使い方的エッセンシャルな部分については普通にWebコンソールを使ってもらえば問題無いです。 そして外部からアクセスするためのAPIについてはWebコンソール外に用意されており、 必要なパラメータとアクセスについては(一部設定や引数などがあるものの)、cli53により実施する。 あとはアクセス制御の設定で、これについてはIAMで制御することになる。

route53/DNSリソースレコードのAPIによる許可設定 (最終更新日時 2018-12-12 23:47:26 更新者 NorikatsuShigemura)