route53

原始碼

route53 能夠從 AWS Route 53 提供網域資料。

描述

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_IDAWS_SECRET_ACCESS_KEY 查詢 AWS 時要使用的 AWS 存取金鑰 ID 和秘密存取金鑰 (選用)。如果未提供,CoreDNS 會嘗試以與 AWS CLI 相同的方式存取 AWS 憑證 - 環境變數、共用憑證檔案 (如果設定了 AWS_SDK_LOAD_CONFIG 環境變數,則可選共用組態檔案),最後是 EC2 執行個體角色。請注意,aws_access_key 的使用已遭棄用,並可能在未來版本中移除。相反地,使用者可以使用其他方法傳遞憑證,例如,使用環境變數 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY

  • aws_endpoint 可用於控制查詢 AWS 時要使用的端點 (選用)。ENDPOINT 是要使用的端點 URL。如果未提供此項,則會發生預設的 AWS 端點解析。

  • credentials 用於覆寫指定區域的共用憑證 FILENAMEPROFILE 名稱。PROFILE 是 AWS 帳戶設定檔名稱。預設值為 defaultFILENAME 是 AWS 共用憑證檔案名稱,預設值為 ~/.aws/credentials。CoreDNS 預設只會載入共用憑證檔案,而不會載入共用組態檔案 (~/.aws/config)。將 AWS_SDK_LOAD_CONFIG 環境變數設定為真值,以啟用 ~/.aws/config 的載入 (例如,如果您想要提供假設的 IAM 角色設定)。如果透過 aws_access_key 設定靜態金鑰,則會忽略此項。

  • fallthrough 如果區域符合且無法產生記錄,則將請求傳遞給下一個外掛程式。如果省略 ZONES,則對於此外掛程式具有授權的所有區域,都會發生 fallthrough。如果列出特定區域 (例如 in-addr.arpaip6.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_IDAWS_SECRET_ACCESS_KEY