mirror of
https://github.com/home-assistant/home-assistant.io.git
synced 2025-12-10 00:30:02 -06:00
* Adds basics for adding Remark * Adds GitHub Action for remark * Adds GitHub Action for remark * Ensure all fenced code blocks have a code flag
104 lines
3.1 KiB
Markdown
104 lines
3.1 KiB
Markdown
---
|
|
title: "route53"
|
|
description: "Automatically update your AWS Route53 DNS records."
|
|
logo: route53.png
|
|
ha_category:
|
|
- Network
|
|
ha_release: 0.81
|
|
---
|
|
|
|
With the `route53` integration can you keep your AWS Route53 DNS records up to date.
|
|
|
|
The integration will run every hour, but can also be started manually by using the service `route53.update_records` under services.
|
|
|
|
Please note that this platform uses the API from [ipify.org](https://www.ipify.org/) to set the public IP address.
|
|
|
|
## Setup
|
|
|
|
You will need to configure your AWS Account with a suitable IAM policy and API keys for this to function.
|
|
|
|
If you are familiar with this process, you can skip the next section and head directly to the configuration section.
|
|
|
|
On the AWS side, you need to do the following;
|
|
|
|
1. Create a suitable zone for a domain that you own and manage in Route53, the domain `home.yourdomain.com` is used as an example.
|
|
|
|
2. Once created, write down the Hosted Zone ID value for the domain. This is needed for the plugin and IAM configuration.
|
|
|
|
3. Create an IAM Policy that provides update and query access to this domain explicitly and has no other permissions to the AWS account.
|
|
|
|
Here is an IAM Policy sample, don't forget to update your Zone ID on the Resource line.
|
|
|
|
```json
|
|
{
|
|
"Version": "2012-10-17",
|
|
"Statement": [
|
|
{
|
|
"Sid": "VisualEditor0",
|
|
"Effect": "Allow",
|
|
"Action": [
|
|
"route53:GetHostedZone",
|
|
"route53:ChangeResourceRecordSets",
|
|
"route53:ListResourceRecordSets"
|
|
],
|
|
"Resource": "arn:aws:route53:::hostedzone/YOURZONEIDGOESHERE"
|
|
},
|
|
{
|
|
"Sid": "VisualEditor1",
|
|
"Effect": "Allow",
|
|
"Action": "route53:TestDNSAnswer",
|
|
"Resource": "*"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
4. Once this has been done, create a new user called `homeassistant` and add the IAM policy to the user, allowing it to manage this DNS resource.
|
|
|
|
5. Under the security credentials tab for the `homeassistant` user, create a set of access keys for placement in the integration definition YAML.
|
|
|
|
## Configuration
|
|
|
|
To use the integration in your installation, add the following to your `configuration.yaml` file:
|
|
|
|
```yaml
|
|
# Example configuration.yaml entry
|
|
route53:
|
|
aws_access_key_id: ABC123
|
|
aws_secret_access_key: DEF456
|
|
zone: ZONEID678
|
|
domain: yourdomain.com
|
|
records:
|
|
- vpn
|
|
- hassio
|
|
- home
|
|
```
|
|
|
|
{% configuration route53 %}
|
|
aws_access_key_id:
|
|
description: The AWS access key ID for the account that has IAM access to the domain.
|
|
required: true
|
|
type: string
|
|
aws_secret_access_key:
|
|
description: The AWS secret access key for the account that has IAM access to the domain.
|
|
required: true
|
|
type: string
|
|
zone:
|
|
description: The AWS zone ID for the domain in Route53.
|
|
required: true
|
|
type: string
|
|
domain:
|
|
description: The domain name for the domain in Route53.
|
|
required: true
|
|
type: string
|
|
records:
|
|
description: A list of records you want to update.
|
|
required: true
|
|
type: list
|
|
ttl:
|
|
description: The TTL value for the DNS records.
|
|
required: false
|
|
type: integer
|
|
default: 300
|
|
{% endconfiguration %}
|