Я хотел бы экспортировать зонный файл DNS из моей установки Amazon Route 53. Возможно ли это, или могут быть созданы только файлы зон вручную? (например, через http://www.zonefile.org/?lang=en)
Экспорт DNS-зоны из маршрута Amazon 53
Ответ 1
Это пока невозможно. Вам нужно будет использовать API ListResourceRecordSets
и самостоятельно создать зонный файл.
Ответ 2
Следующий скрипт экспортирует детали зоны в формате связывания из Route53. Передайте имя домена в качестве параметра для сценария. (Для этого требуется awscli быть установленным и настроенным.)
#!/bin/bash
zonename=$1
hostedzoneid=$(aws route53 list-hosted-zones | jq -r ".HostedZones[] | select(.Name == \"$zonename.\") | .Id" | cut -d'/' -f3)
aws route53 list-resource-record-sets --hosted-zone-id $hostedzoneid --output json | jq -jr '.ResourceRecordSets[] | "\(.Name) \t\(.TTL) \t\(.Type) \t\(.ResourceRecords[].Value)\n"'
Ответ 3
Экспортировать и импортировать можно с помощью https://github.com/RisingOak/route53-transfer
Ответ 4
Как указано в комментарии, cli53 - отличный инструмент для взаимодействия с Route 53 с использованием интерфейса командной строки.
Сначала настройте ключи своей учетной записи в файле ~/.aws/config
:
[default]
aws_access_key_id = AK.....ZP
aws_secret_access_key = 8j.....M0
Затем используйте команду export
:
$ cli53 export --full --debug example.com > example.com.zone 2> example.com.zone.log
Проверьте файл example.com.zone
после экспорта, чтобы убедиться, что все экспортировано правильно.
Вы можете импортировать зону в последнее время:
$ cli53 import --file ./example.com.zone example.com
И если вы хотите перенести зону Route53 из одной учетной записи AWS в другую, вы можете использовать опцию profile
. Просто добавьте две именованные учетные записи в файл ~/.aws/config
и свяжите их со свойством profile
во время экспорта и импорта. Вы даже можете передать эти две команды по конвейеру.