route53

ソース

route53 は、AWS Route53 からゾーンデータを提供できるようにします。

説明

route53 プラグインは、AWS Route53 のリソースレコードセットからゾーンを提供する場合に便利です。このプラグインは、すべての Amazon Route 53 レコード (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html) をサポートします。route53 プラグインは、CoreDNS が AWS 上または他の場所にデプロイされている場合に使用できます。

構文

route53 [ZONE:HOSTED_ZONE_ID...] {
    aws_access_key [AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY] # Deprecated, uses other authentication methods instead.
    aws_endpoint ENDPOINT
    credentials PROFILE [FILENAME]
    fallthrough [ZONES...]
    refresh DURATION
}
  • ZONE アクセスされるドメインの名前。ドメインが重複する複数のゾーン (プライベートとパブリックのホストゾーン) がある場合、CoreDNS はここで指定された順序で検索を行います。したがって、存在しないリソースレコードの場合、SOA レスポンスは右端のゾーンからのものになります。

  • HOSTED_ZONE_ID アクセスするリソースレコードセットを含むホストゾーンの ID。

  • AWS_ACCESS_KEY_ID および AWS_SECRET_ACCESS_KEY AWS にクエリを実行する際に使用する AWS アクセスキー ID およびシークレットアクセスキー (オプション)。これらが提供されない場合、CoreDNS は AWS CLI と同じ方法で AWS 認証情報にアクセスしようとします。つまり、環境変数、共有認証情報ファイル (およびオプションで AWS_SDK_LOAD_CONFIG 環境変数が設定されている場合は共有設定ファイル)、そして最後に EC2 インスタンスロールです。aws_access_key の使用は非推奨であり、将来のバージョンで削除される可能性があることに注意してください。代わりに、ユーザーは環境変数 AWS_ACCESS_KEY_ID および AWS_SECRET_ACCESS_KEY など、他の方法で認証情報を渡すことができます。

  • aws_endpoint は、AWS にクエリを実行する際に使用するエンドポイントを制御するために使用できます (オプション)。ENDPOINT は、使用するエンドポイントの URL です。これが提供されない場合、デフォルトの AWS エンドポイント解決が行われます。

  • credentials は、特定のゾーンに対して共有認証情報 FILENAMEPROFILE 名を上書きするために使用されます。PROFILE は AWS アカウントのプロファイル名です。デフォルトは default です。FILENAME は AWS 共有認証情報ファイル名で、デフォルトは ~/.aws/credentials です。CoreDNS は、デフォルトでは共有認証情報ファイルのみをロードし、共有設定ファイル (~/.aws/config) はロードしません。~/.aws/config のロードも有効にするには、AWS_SDK_LOAD_CONFIG 環境変数を真の値に設定します (たとえば、引き受ける IAM ロール構成を提供する場合)。静的キーが aws_access_key 経由で設定されている場合は無視されます。

  • fallthrough ゾーンが一致し、レコードを生成できない場合、リクエストを次のプラグインに渡します。ZONES が省略された場合、フォールスルーはプラグインが権威を持つすべてのゾーンで発生します。特定のゾーン (たとえば、in-addr.arpa および ip6.arpa) がリストされている場合、これらのゾーンへのクエリのみがフォールスルーの対象となります。

  • refresh は、Route 53 からのレコード取得の間隔を制御するために使用できます。更新サイクル間の間隔を指定するためのパラメータとして、期間文字列が必要です。各更新サイクルでは、このプラグインを使用するドメイン数と各レコード数に応じて、多くの AWS API 呼び出しが発生する可能性があります。更新頻度を調整すると、AWS によって課せられる API レート制限の可能性を減らすのに役立つ場合があります。

  • DURATION 期間文字列。デフォルトは 1m です。単位が指定されていない場合は、秒とみなされます。

暗黙的な AWS 認証情報で route53 を有効にし、10.0.0.1 を介して CNAME を解決します。

example.org {
	route53 example.org.:Z1Z2Z3Z4DZ5Z6Z7
}

. {
    forward . 10.0.0.1
}

明示的な AWS 認証情報で route53 を有効にします。

example.org {
    route53 example.org.:Z1Z2Z3Z4DZ5Z6Z7 {
      aws_access_key AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY # Deprecated, uses other authentication methods instead.
    }
}

明示的な AWS エンドポイントで route53 を有効にします。

example.org {
    route53 example.org.:Z1Z2Z3Z4DZ5Z6Z7 {
      aws_endpoint https://test.us-west-2.amazonaws.com
    }
}

フォールスルーで route53 を有効にします。

. {
    route53 example.org.:Z1Z2Z3Z4DZ5Z6Z7 example.gov.:Z654321543245 {
      fallthrough example.gov.
    }
}

同じドメインで複数のホストゾーンを持つ route53 を有効にします。

example.org {
    route53 example.org.:Z1Z2Z3Z4DZ5Z6Z7 example.org.:Z93A52145678156
}

route53 を有効にし、3 分ごとにレコードを更新します。

example.org {
    route53 example.org.:Z1Z2Z3Z4DZ5Z6Z7 {
      refresh 3m
    }
}

認証

Route53 プラグインは、認証に AWS Go SDK を使用します。ここでは、受け入れられる構成方法のリストがあります。Corefile での aws_access_key の使用は非推奨であり、将来のバージョンで削除される可能性があることに注意してください。代わりに、ユーザーは環境変数 AWS_ACCESS_KEY_ID および AWS_SECRET_ACCESS_KEY など、他の方法で認証情報を渡すことができます。