Skip to content
v2.276.0

OriginRequestQueryStringBehavior Class ​

Determines whether any URL query strings in viewer requests (and if so, which query strings) are included in requests that CloudFront sends to the origin.

Example ​

ts
// Creating a custom origin request policy for a Distribution -- all parameters optional
declare const bucketOrigin: origins.S3Origin;
const myOriginRequestPolicy = new cloudfront.OriginRequestPolicy(this, 'OriginRequestPolicy', {
  originRequestPolicyName: 'MyPolicy',
  comment: 'A default policy',
  cookieBehavior: cloudfront.OriginRequestCookieBehavior.none(),
  headerBehavior: cloudfront.OriginRequestHeaderBehavior.all('CloudFront-Is-Android-Viewer'),
  queryStringBehavior: cloudfront.OriginRequestQueryStringBehavior.allowList('username'),
});

new cloudfront.Distribution(this, 'myDistCustomPolicy', {
  defaultBehavior: {
    origin: bucketOrigin,
    originRequestPolicy: myOriginRequestPolicy,
  },
});
python
# Creating a custom origin request policy for a Distribution -- all parameters optional
# bucket_origin: origins.S3Origin

my_origin_request_policy = cloudfront.OriginRequestPolicy(self, "OriginRequestPolicy",
    origin_request_policy_name="MyPolicy",
    comment="A default policy",
    cookie_behavior=cloudfront.OriginRequestCookieBehavior.none(),
    header_behavior=cloudfront.OriginRequestHeaderBehavior.all("CloudFront-Is-Android-Viewer"),
    query_string_behavior=cloudfront.OriginRequestQueryStringBehavior.allow_list("username")
)

cloudfront.Distribution(self, "myDistCustomPolicy",
    default_behavior=cloudfront.BehaviorOptions(
        origin=bucket_origin,
        origin_request_policy=my_origin_request_policy
    )
)
java
// Creating a custom origin request policy for a Distribution -- all parameters optional
S3Origin bucketOrigin;

OriginRequestPolicy myOriginRequestPolicy = OriginRequestPolicy.Builder.create(this, "OriginRequestPolicy")
        .originRequestPolicyName("MyPolicy")
        .comment("A default policy")
        .cookieBehavior(OriginRequestCookieBehavior.none())
        .headerBehavior(OriginRequestHeaderBehavior.all("CloudFront-Is-Android-Viewer"))
        .queryStringBehavior(OriginRequestQueryStringBehavior.allowList("username"))
        .build();

Distribution.Builder.create(this, "myDistCustomPolicy")
        .defaultBehavior(BehaviorOptions.builder()
                .origin(bucketOrigin)
                .originRequestPolicy(myOriginRequestPolicy)
                .build())
        .build();
csharp
// Install: dotnet add package Amazon.CDK.Lib
// Creating a custom origin request policy for a Distribution -- all parameters optional
S3Origin bucketOrigin;

var myOriginRequestPolicy = new OriginRequestPolicy(this, "OriginRequestPolicy", new OriginRequestPolicyProps {
    OriginRequestPolicyName = "MyPolicy",
    Comment = "A default policy",
    CookieBehavior = OriginRequestCookieBehavior.None(),
    HeaderBehavior = OriginRequestHeaderBehavior.All("CloudFront-Is-Android-Viewer"),
    QueryStringBehavior = OriginRequestQueryStringBehavior.AllowList("username")
});

new Distribution(this, "myDistCustomPolicy", new DistributionProps {
    DefaultBehavior = new BehaviorOptions {
        Origin = bucketOrigin,
        OriginRequestPolicy = myOriginRequestPolicy
    }
});
go
// Install: go get github.com/aws/aws-cdk-go/awscdk/v2
// Creating a custom origin request policy for a Distribution -- all parameters optional
var bucketOrigin S3Origin

myOriginRequestPolicy := cloudfront.NewOriginRequestPolicy(this, jsii.String("OriginRequestPolicy"), &OriginRequestPolicyProps{
	OriginRequestPolicyName: jsii.String("MyPolicy"),
	Comment: jsii.String("A default policy"),
	CookieBehavior: cloudfront.OriginRequestCookieBehavior_None(),
	HeaderBehavior: cloudfront.OriginRequestHeaderBehavior_All(jsii.String("CloudFront-Is-Android-Viewer")),
	QueryStringBehavior: cloudfront.OriginRequestQueryStringBehavior_AllowList(jsii.String("username")),
})

cloudfront.NewDistribution(this, jsii.String("myDistCustomPolicy"), &DistributionProps{
	DefaultBehavior: &BehaviorOptions{
		Origin: bucketOrigin,
		OriginRequestPolicy: myOriginRequestPolicy,
	},
})

Properties ​

behaviorstringbehaviorstrbehaviorStringBehaviorstringBehavior*string#
The behavior of query strings -- allow all, none, or only an allow list.
queryStringsmay be undefinedstring[]query_stringsmay be undefinedtyping.List[str]queryStringsmay be undefinedList<String>QueryStringsmay be undefinedstring[]QueryStringsmay be undefined*[]*string#
The query strings to allow, if the behavior is an allow list.

Methods ​

all(): OriginRequestQueryStringBehavior // chainable@staticmethod def all() -> OriginRequestQueryStringBehaviorpublic static OriginRequestQueryStringBehavior all()public static OriginRequestQueryStringBehavior All()func All() OriginRequestQueryStringBehaviorstatic#
All query strings in viewer requests are included in requests that CloudFront sends to the origin.
allowList(...queryStrings: string[]): OriginRequestQueryStringBehavior // chainable@staticmethod def allow_list(query_strings: str) -> OriginRequestQueryStringBehaviorpublic static OriginRequestQueryStringBehavior allowList(String queryStrings)public static OriginRequestQueryStringBehavior AllowList(string queryStrings)func AllowList(QueryStrings *string) OriginRequestQueryStringBehaviorstatic#
Only the provided `queryStrings` are included in requests that CloudFront sends to the origin.
denyList(...queryStrings: string[]): OriginRequestQueryStringBehavior // chainable@staticmethod def deny_list(query_strings: str) -> OriginRequestQueryStringBehaviorpublic static OriginRequestQueryStringBehavior denyList(String queryStrings)public static OriginRequestQueryStringBehavior DenyList(string queryStrings)func DenyList(QueryStrings *string) OriginRequestQueryStringBehaviorstatic#
All query strings except the provided `queryStrings` are included in requests that CloudFront sends to the origin.
none(): OriginRequestQueryStringBehavior // chainable@staticmethod def none() -> OriginRequestQueryStringBehaviorpublic static OriginRequestQueryStringBehavior none()public static OriginRequestQueryStringBehavior None()func None() OriginRequestQueryStringBehaviorstatic#
Query strings in viewer requests are not included in requests that CloudFront sends to the origin.

Any query strings that are listed in a CachePolicy are still included in origin requests.