

This is the new *CloudFormation Template Reference Guide*. Please update your bookmarks and links. For help getting started with CloudFormation, see the [AWS CloudFormation User Guide](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

# AWS::Route53Resolver::ResolverRule
<a name="aws-resource-route53resolver-resolverrule"></a>

For DNS queries that originate in your VPCs, specifies which Resolver endpoint the queries pass through, one domain name that you want to forward to your network, and the IP addresses of the DNS resolvers in your network.

## Syntax
<a name="aws-resource-route53resolver-resolverrule-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-resource-route53resolver-resolverrule-syntax.json"></a>

```
{
  "Type" : "AWS::Route53Resolver::ResolverRule",
  "Properties" : {
      "[DelegationRecord](#cfn-route53resolver-resolverrule-delegationrecord)" : String,
      "[DomainName](#cfn-route53resolver-resolverrule-domainname)" : String,
      "[Name](#cfn-route53resolver-resolverrule-name)" : String,
      "[ResolverEndpointId](#cfn-route53resolver-resolverrule-resolverendpointid)" : String,
      "[RuleType](#cfn-route53resolver-resolverrule-ruletype)" : String,
      "[Tags](#cfn-route53resolver-resolverrule-tags)" : [ Tag, ... ],
      "[TargetIps](#cfn-route53resolver-resolverrule-targetips)" : [ TargetAddress, ... ]
    }
}
```

### YAML
<a name="aws-resource-route53resolver-resolverrule-syntax.yaml"></a>

```
Type: AWS::Route53Resolver::ResolverRule
Properties:
  [DelegationRecord](#cfn-route53resolver-resolverrule-delegationrecord): String
  [DomainName](#cfn-route53resolver-resolverrule-domainname): String
  [Name](#cfn-route53resolver-resolverrule-name): String
  [ResolverEndpointId](#cfn-route53resolver-resolverrule-resolverendpointid): String
  [RuleType](#cfn-route53resolver-resolverrule-ruletype): String
  [Tags](#cfn-route53resolver-resolverrule-tags): 
    - Tag
  [TargetIps](#cfn-route53resolver-resolverrule-targetips): 
    - TargetAddress
```

## Properties
<a name="aws-resource-route53resolver-resolverrule-properties"></a>

`DelegationRecord`  <a name="cfn-route53resolver-resolverrule-delegationrecord"></a>
 DNS queries with delegation records that point to this domain name are forwarded to resolvers on your network.   
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `256`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`DomainName`  <a name="cfn-route53resolver-resolverrule-domainname"></a>
DNS queries for this domain name are forwarded to the IP addresses that are specified in `TargetIps`. If a query matches multiple Resolver rules (example.com and www.example.com), the query is routed using the Resolver rule that contains the most specific domain name (www.example.com).  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `256`  
*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)

`Name`  <a name="cfn-route53resolver-resolverrule-name"></a>
The name for the Resolver rule, which you specified when you created the Resolver rule.  
The name can be up to 64 characters long and can contain letters (a-z, A-Z), numbers (0-9), hyphens (-), underscores (\$1), and spaces. The name cannot consist of only numbers.  
*Required*: No  
*Type*: String  
*Minimum*: `0`  
*Maximum*: `64`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ResolverEndpointId`  <a name="cfn-route53resolver-resolverrule-resolverendpointid"></a>
The ID of the endpoint that the rule is associated with.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `64`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`RuleType`  <a name="cfn-route53resolver-resolverrule-ruletype"></a>
When you want to forward DNS queries for specified domain name to resolvers on your network, specify `FORWARD` or `DELEGATE`. If a query matches multiple Resolver rules (example.com and www.example.com), outbound DNS queries are routed using the Resolver rule that contains the most specific domain name (www.example.com).  
When you have a forwarding rule to forward DNS queries for a domain to your network and you want Resolver to process queries for a subdomain of that domain, specify `SYSTEM`.  
For example, to forward DNS queries for example.com to resolvers on your network, you create a rule and specify `FORWARD` for `RuleType`. To then have Resolver process queries for apex.example.com, you create a rule and specify `SYSTEM` for `RuleType`.  
Currently, only Resolver can create rules that have a value of `RECURSIVE` for `RuleType`.  
*Required*: Yes  
*Type*: String  
*Allowed values*: `FORWARD | SYSTEM | RECURSIVE | DELEGATE`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Tags`  <a name="cfn-route53resolver-resolverrule-tags"></a>
Tags help organize and categorize your Resolver rules. Each tag consists of a key and an optional value, both of which you define.  
*Required*: No  
*Type*: Array of [Tag](aws-properties-route53resolver-resolverrule-tag.md)  
*Maximum*: `200`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`TargetIps`  <a name="cfn-route53resolver-resolverrule-targetips"></a>
An array that contains the IP addresses and ports that an outbound endpoint forwards DNS queries to. Typically, these are the IP addresses of DNS resolvers on your network.   
*Required*: No  
*Type*: Array of [TargetAddress](aws-properties-route53resolver-resolverrule-targetaddress.md)  
*Minimum*: `1`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

## Return values
<a name="aws-resource-route53resolver-resolverrule-return-values"></a>

### Ref
<a name="aws-resource-route53resolver-resolverrule-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the `ResolverRule` object, which contains detailed information about the rule.

For more information about using the `Ref` function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html).

### Fn::GetAtt
<a name="aws-resource-route53resolver-resolverrule-return-values-fn--getatt"></a>

The `Fn::GetAtt` intrinsic function returns a value for a specified attribute of this type. The following are the available attributes and sample return values.

For more information about using the `Fn::GetAtt` intrinsic function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html).

#### 
<a name="aws-resource-route53resolver-resolverrule-return-values-fn--getatt-fn--getatt"></a>

`Arn`  <a name="Arn-fn::getatt"></a>
The Amazon Resource Name (ARN) of the resolver rule, such as `arn:aws:route53resolver:us-east-1:123456789012:resolver-rule/resolver-rule-a1bzhi`.

`DomainName`  <a name="DomainName-fn::getatt"></a>
DNS queries for this domain name are forwarded to the IP addresses that are specified in TargetIps. If a query matches multiple resolver rules (example.com and www.example.com), the query is routed using the resolver rule that contains the most specific domain name (www.example.com).

`Name`  <a name="Name-fn::getatt"></a>
A friendly name that lets you easily find a rule in the Resolver dashboard in the Route 53 console. 

`ResolverEndpointId`  <a name="ResolverEndpointId-fn::getatt"></a>
The ID of the outbound endpoint that the rule is associated with, such as `rslvr-out-fdc049932dexample`.

`ResolverRuleId`  <a name="ResolverRuleId-fn::getatt"></a>
When the value of `RuleType` is `FORWARD`, the ID that Resolver assigned to the resolver rule when you created it, such as `rslvr-rr-5328a0899aexample`. This value isn't applicable when `RuleType` is `SYSTEM`.

`TargetIps`  <a name="TargetIps-fn::getatt"></a>
When the value of `RuleType` is `FORWARD`, the IP addresses that the outbound endpoint forwards DNS queries to, typically the IP addresses for DNS resolvers on your network. This value isn't applicable when `RuleType` is `SYSTEM`.  
`TargetIps` is available only when the value of `RuleType` is `FORWARD`. You should not provide `TargetIps` when the `RuleType` is `DELEGATE`.

## Examples
<a name="aws-resource-route53resolver-resolverrule--examples"></a>



### Create Resolver rule
<a name="aws-resource-route53resolver-resolverrule--examples--Create_Resolver_rule"></a>

The following example creates an Amazon Route 53 outbound resolver rule.

#### JSON
<a name="aws-resource-route53resolver-resolverrule--examples--Create_Resolver_rule--json"></a>

```
{
  "Type" : "AWS::Route53Resolver::ResolverRule",
  "Properties" : {
    "DomainName" : "example.com",
    "Name" : "MyRule",
    "ResolverEndpointId" : "rslvr-out-fdc049932dexample",
    "RuleType" : "FORWARD", 
    "Tags" : [
      {
        "Key": "LineOfBusiness",
        "Value": "Engineering"
      }
    ],
    "TargetIps" : [
      {
        "Ip" : "192.0.2.6",
        "Port" : "53"
      },
      {
        "Ip" : "192.0.2.99",
        "Port" : "53"
      }
    ]
  }
}
```

#### YAML
<a name="aws-resource-route53resolver-resolverrule--examples--Create_Resolver_rule--yaml"></a>

```
Type: AWS::Route53Resolver::ResolverRule
Properties: 
  DomainName: example.com
  Name: MyRule
  ResolverEndpointId: rslvr-out-fdc049932dexample
  RuleType: FORWARD 
  Tags: 
    - 
      Key: LineOfBusiness
      Value: Engineering
  TargetIps:
    - 
      Ip: 192.0.2.6
      Port: 53
    -  
      Ip: 192.0.2.99
      Port: 53
```

## See also
<a name="aws-resource-route53resolver-resolverrule--seealso"></a>
+ [ResolverRule](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ResolverRule.html) in the *Amazon Route 53 API Reference*



# AWS::Route53Resolver::ResolverRule Tag
<a name="aws-properties-route53resolver-resolverrule-tag"></a>

One tag that you want to add to the specified resource. A tag consists of a `Key` (a name for the tag) and a `Value`.

## Syntax
<a name="aws-properties-route53resolver-resolverrule-tag-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-route53resolver-resolverrule-tag-syntax.json"></a>

```
{
  "[Key](#cfn-route53resolver-resolverrule-tag-key)" : String,
  "[Value](#cfn-route53resolver-resolverrule-tag-value)" : String
}
```

### YAML
<a name="aws-properties-route53resolver-resolverrule-tag-syntax.yaml"></a>

```
  [Key](#cfn-route53resolver-resolverrule-tag-key): String
  [Value](#cfn-route53resolver-resolverrule-tag-value): String
```

## Properties
<a name="aws-properties-route53resolver-resolverrule-tag-properties"></a>

`Key`  <a name="cfn-route53resolver-resolverrule-tag-key"></a>
The name for the tag. For example, if you want to associate Resolver resources with the account IDs of your customers for billing purposes, the value of `Key` might be `account-id`.  
*Required*: Yes  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `128`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Value`  <a name="cfn-route53resolver-resolverrule-tag-value"></a>
The value for the tag. For example, if `Key` is `account-id`, then `Value` might be the ID of the customer account that you're creating the resource for.  
*Required*: Yes  
*Type*: String  
*Minimum*: `0`  
*Maximum*: `256`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::Route53Resolver::ResolverRule TargetAddress
<a name="aws-properties-route53resolver-resolverrule-targetaddress"></a>

In a [CreateResolverRule](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverRule.html) request, an array of the IPs that you want to forward DNS queries to.

## Syntax
<a name="aws-properties-route53resolver-resolverrule-targetaddress-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-route53resolver-resolverrule-targetaddress-syntax.json"></a>

```
{
  "[Ip](#cfn-route53resolver-resolverrule-targetaddress-ip)" : String,
  "[Ipv6](#cfn-route53resolver-resolverrule-targetaddress-ipv6)" : String,
  "[Port](#cfn-route53resolver-resolverrule-targetaddress-port)" : String,
  "[Protocol](#cfn-route53resolver-resolverrule-targetaddress-protocol)" : String,
  "[ServerNameIndication](#cfn-route53resolver-resolverrule-targetaddress-servernameindication)" : String
}
```

### YAML
<a name="aws-properties-route53resolver-resolverrule-targetaddress-syntax.yaml"></a>

```
  [Ip](#cfn-route53resolver-resolverrule-targetaddress-ip): String
  [Ipv6](#cfn-route53resolver-resolverrule-targetaddress-ipv6): String
  [Port](#cfn-route53resolver-resolverrule-targetaddress-port): String
  [Protocol](#cfn-route53resolver-resolverrule-targetaddress-protocol): String
  [ServerNameIndication](#cfn-route53resolver-resolverrule-targetaddress-servernameindication): String
```

## Properties
<a name="aws-properties-route53resolver-resolverrule-targetaddress-properties"></a>

`Ip`  <a name="cfn-route53resolver-resolverrule-targetaddress-ip"></a>
One IPv4 address that you want to forward DNS queries to.  
*Required*: No  
*Type*: String  
*Minimum*: `7`  
*Maximum*: `36`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Ipv6`  <a name="cfn-route53resolver-resolverrule-targetaddress-ipv6"></a>
 One IPv6 address that you want to forward DNS queries to.   
*Required*: No  
*Type*: String  
*Minimum*: `7`  
*Maximum*: `39`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Port`  <a name="cfn-route53resolver-resolverrule-targetaddress-port"></a>
The port at `Ip` that you want to forward DNS queries to.  
*Required*: No  
*Type*: String  
*Minimum*: `0`  
*Maximum*: `65535`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Protocol`  <a name="cfn-route53resolver-resolverrule-targetaddress-protocol"></a>
 The protocols for the target address. The protocol you choose needs to be supported by the outbound endpoint of the Resolver rule.  
*Required*: No  
*Type*: String  
*Allowed values*: `Do53 | DoH`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ServerNameIndication`  <a name="cfn-route53resolver-resolverrule-targetaddress-servernameindication"></a>
 The Server Name Indication of the DoH server that you want to forward queries to. This is only used if the Protocol of the `TargetAddress` is `DoH`.   
*Required*: No  
*Type*: String  
*Minimum*: `0`  
*Maximum*: `255`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

## See also
<a name="aws-properties-route53resolver-resolverrule-targetaddress--seealso"></a>
+ [Return values](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverrule.html#aws-resource-route53resolver-resolverrule-return-values) in the topic [AWS::Route53Resolver::ResolverRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverrule.html)
+ [TargetAddress](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_TargetAddress.html) in the *Amazon Route 53 API Reference*

