aws.cloudfront-response-headers-policy resource¶
Description¶
ResponseHeadersPolicy manages a CloudFront response headers policy: a named set of HTTP headers a distribution adds to or removes from its responses, grouped into CORS, custom, removed, security, and server-timing configurations. CloudFront replaces the whole policy on every update rather than patching one field, so no field forces a new resource. An update or delete is guarded by the policy's current version, an ETag that the create and read both return; the ETag is an output the update and delete pass back as the IfMatch concurrency token.
Source: internal/service/cloudfront/response_headers_policy_rsrc.go:23
Example usage:
imports: {
aws: 'github.com/cloudboss/unobin-library-aws'
}
resources: {
example: aws.cloudfront-response-headers-policy {
# Set input fields here.
}
}
Inputs¶
name
string
comment
optional(string)
cors-config
optional(object)
optional(
object({
access-control-allow-credentials: optional(boolean)
access-control-allow-headers: object({
items: list(string)
})
access-control-allow-methods: object({
items: list(string)
})
access-control-allow-origins: object({
items: list(string)
})
access-control-expose-headers: optional(
object({
items: list(string)
})
)
access-control-max-age-sec: optional(integer)
origin-override: optional(boolean)
})
)
custom-headers-config
optional(object)
optional(
object({
items: list(
object({
header: string
value: string
override: optional(boolean)
})
)
})
)
remove-headers-config
optional(object)
optional(
object({
items: list(
object({
header: string
})
)
})
)
security-headers-config
optional(object)
optional(
object({
content-security-policy: optional(
object({
content-security-policy: string
override: optional(boolean)
})
)
content-type-options: optional(
object({
override: optional(boolean)
})
)
frame-options: optional(
object({
frame-option: string
override: optional(boolean)
})
)
referrer-policy: optional(
object({
referrer-policy: string
override: optional(boolean)
})
)
strict-transport-security: optional(
object({
access-control-max-age-sec: optional(integer)
override: optional(boolean)
include-subdomains: optional(boolean)
preload: optional(boolean)
})
)
xss-protection: optional(
object({
protection: optional(boolean)
override: optional(boolean)
mode-block: optional(boolean)
report-uri: optional(string)
})
)
})
)
server-timing-headers-config
optional(object)
optional(
object({
enabled: optional(boolean)
sampling-rate: optional(number)
})
)
Input Constraints¶
Field combinations
At least one of cors-config, custom-headers-config, remove-headers-config, security-headers-config, or server-timing-headers-config.
Security headers config rules
security-headers-config frame-options frame-option must be DENY or SAMEORIGIN.
Rule logic
- When
input.security-headers-config.frame-options != null- Require
input.security-headers-config.frame-options.frame-option == 'DENY'
|| input.security-headers-config.frame-options.frame-option == 'SAMEORIGIN'
security-headers-config referrer-policy referrer-policy must be one of no-referrer, no-referrer-when-downgrade, origin, origin-when-cross-origin, same-origin, strict-origin, strict-origin-when-cross-origin, unsafe-url.
Rule logic
- When
input.security-headers-config.referrer-policy != null- Require
input.security-headers-config.referrer-policy.referrer-policy == 'no-referrer'
|| input.security-headers-config.referrer-policy.referrer-policy == 'no-referrer-when-downgrade'
|| input.security-headers-config.referrer-policy.referrer-policy == 'origin'
|| input.security-headers-config.referrer-policy.referrer-policy == 'origin-when-cross-origin'
|| input.security-headers-config.referrer-policy.referrer-policy == 'same-origin'
|| input.security-headers-config.referrer-policy.referrer-policy == 'strict-origin'
|| input.security-headers-config.referrer-policy.referrer-policy == 'strict-origin-when-cross-origin'
|| input.security-headers-config.referrer-policy.referrer-policy == 'unsafe-url'
Server timing headers config rules
server-timing-headers-config sampling-rate must be between 0 and 100.
Rule logic
- When
input.server-timing-headers-config.sampling-rate != null- Require
(input.server-timing-headers-config.sampling-rate == null || input.server-timing-headers-config.sampling-rate >= 0.0)
&& (input.server-timing-headers-config.sampling-rate == null || input.server-timing-headers-config.sampling-rate <= 100.0)
Outputs¶
id
string
etag
string