描述
route53 外掛程式可用於從 AWS Route 53 中的資源記錄集提供網域。此外掛程式支援所有 Amazon Route 53 記錄 (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html)。當 CoreDNS 部署在 AWS 或其他地方時,可以使用 route53 外掛程式。
語法
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
用於覆寫指定區域的共用憑證 FILENAME 和 PROFILE 名稱。PROFILE 是 AWS 帳戶設定檔名稱。預設值為default
。FILENAME 是 AWS 共用憑證檔案名稱,預設值為~/.aws/credentials
。CoreDNS 預設只會載入共用憑證檔案,而不會載入共用組態檔案 (~/.aws/config
)。將AWS_SDK_LOAD_CONFIG
環境變數設定為真值,以啟用~/.aws/config
的載入 (例如,如果您想要提供假設的 IAM 角色設定)。如果透過aws_access_key
設定靜態金鑰,則會忽略此項。 -
fallthrough
如果區域符合且無法產生記錄,則將請求傳遞給下一個外掛程式。如果省略 ZONES,則對於此外掛程式具有授權的所有區域,都會發生 fallthrough。如果列出特定區域 (例如in-addr.arpa
和ip6.arpa
),則只有對這些區域的查詢才會受到 fallthrough 的影響。 -
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
}
}
啟用具有 fallthrough 的 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
。