⇤ ← 2018-12-10 00:46:51時点のリビジョン1
サイズ: 5847
コメント:
|
サイズ: 6805
コメント:
|
削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
行 3: | 行 3: |
* Route53はマネージドサービスで、管理インターフェース・API機能込みの1ゾーン百数円/月で利用できる。 | * Route53はマネージドサービスで、管理インターフェース・API機能込みで、[[https://aws.amazon.com/jp/route53/pricing/|おおよそ1ゾーン百数十円/月]]で利用できる。 |
行 131: | 行 131: |
= よくある質問とその答え = == Q.またまた~従量制なんだから高くなるんでないの? == A.ホスティングするゾーン(ドメイン)はYahoo、Googleクラスです!と言える者だけだが石を投げなさい。 [[https://aws.amazon.com/jp/route53/pricing/|料金表]]を見ながらの話になりますが、 標準クエリで100万クエリ/月を秒間(30日とする)で換算すると、0.39クエリ/秒になる。 まぁ個人サイトレベルなら余裕過ぎるレベル。 そこそこ目立つサイトで10クエリ/秒くらいだとすると(個人的見解です)、259万2千クエリ/月、それでも2USDも行かないくらい。 つまりワンコイン(500円)もあれば十分行ける数字ではある。 |
AWS Route53を使用したDNSリソースレコードのAPIによる許可設定
- AWS Route53はAWS(Amazone Web Service)のDNSサービスである。
Route53はマネージドサービスで、管理インターフェース・API機能込みで、おおよそ1ゾーン百数十円/月で利用できる。
- クエリ数による従量課金?ほぼ無視して良いです。
- ここではRoute53そのものの使い方は取り扱わない。
- よってAPIを叩くにあたって設定すべき権限について解説する。
- 想定クライアントは「ACMEクライアント」として例示する。
目次
AWS側の設定
IAMポリシーの作成
route53-acme-dns-01
- LE認証局(Let's Encrypt)に対してSSL証明書要求プロトコル(ACME)のDNS-01メソッドを使用するためのRoute53側の設定(共通設定)である。
- 各ACMEクライアントは本設定に基づいて照会が許可される(各ゾーン中のレコードの照会および変更は別ポリシーにて定義)。
- 下記設定の内、「アクセス元IPアドレス帯」を書き換えて使用する。
- 指定したIPアドレス帯以外からのAPI呼び出しは無効になる。
{ "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-ゾーン名
- LE認証局(Let's Encrypt)に対してSSL証明書要求プロトコル(ACME)のDNS-01メソッドを使用するためのRoute53側の設定(共通設定)である。
- 各ACMEクライアントは本設定に基づいて指定された「ゾーン名」に所属するレコードの更新が許可される。
- この「ポリシー名」は例えば ninth-nine.com の場合「route53-hosted-zone-ninth-nine.com」となる。
- 下記設定の内、「アクセス元IPアドレス帯」を書き換えて使用する。
- 指定したIPアドレス帯以外からのAPI呼び出しは無効になる。
{ "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 |
クライアント側の設定
インストール
- ports/devel/awscli
- ports/dns/cli53
クレデンシャルファイルの作成
- 発行したアクセスキーおよびシークレットアクセスキーをAPIクライアント側で使用するために「クレデンシャルファイル」を作成する。
- APIを実行するクライアント(Webサーバーやメールサーバーなど)の所定のユーザー(dehydrated の利用においては root)のホームディレクトリをベースに以下の作業を実施する。
mkdir -p -m 0700 ~root/.aws
- クレデンシャルファイル(~root/.aws/credentials)を以下のように作成する。この時、プロファイル名はIAMユーザー名と同じものとする。
[ユーザー名] aws_access_key_id = XXXXXXXXXXXXXXXXXXXX aws_secret_access_key = YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
- この時、作成されたクレデンシャルファイルのパーミッションを変更すること。
chmod 0600 ~root/.aws/credentials
- API設定に問題無いかチェックする。
aws --profile ユーザー名 configure list または env AWS_PROFILE=ユーザー名 aws configure list
- 当該APIか稼働しているか動作確認すること。
cli53 list --profile ユーザー名
よくある質問とその答え
Q.またまた~従量制なんだから高くなるんでないの?
A.ホスティングするゾーン(ドメイン)はYahoo、Googleクラスです!と言える者だけだが石を投げなさい。
料金表を見ながらの話になりますが、 標準クエリで100万クエリ/月を秒間(30日とする)で換算すると、0.39クエリ/秒になる。 まぁ個人サイトレベルなら余裕過ぎるレベル。
そこそこ目立つサイトで10クエリ/秒くらいだとすると(個人的見解です)、259万2千クエリ/月、それでも2USDも行かないくらい。
つまりワンコイン(500円)もあれば十分行ける数字ではある。