Skip to content

OriginRequestPolicy ​

The OriginRequestPolicy resource allows you to manage AWS CloudFront Origin Request Policies to control the headers, cookies, and query strings that CloudFront includes in requests to your origin.

Minimal Example ​

Create a basic Origin Request Policy with required properties and an optional description.

ts
import AWS from "alchemy/aws/control";

const basicOriginRequestPolicy = await AWS.CloudFront.OriginRequestPolicy("basicOriginRequestPolicy", {
  OriginRequestPolicyConfig: {
    Name: "BasicPolicy",
    Comment: "A simple origin request policy",
    HeadersConfig: {
      HeaderBehavior: "whitelist",
      Headers: ["Authorization"]
    },
    CookiesConfig: {
      CookieBehavior: "none"
    },
    QueryStringsConfig: {
      QueryStringBehavior: "all"
    }
  }
});

Advanced Configuration ​

Configure an Origin Request Policy with more advanced settings, including headers and cookies.

ts
const advancedOriginRequestPolicy = await AWS.CloudFront.OriginRequestPolicy("advancedOriginRequestPolicy", {
  OriginRequestPolicyConfig: {
    Name: "AdvancedPolicy",
    Comment: "An advanced origin request policy with more settings",
    HeadersConfig: {
      HeaderBehavior: "whitelist",
      Headers: ["Authorization", "User-Agent"]
    },
    CookiesConfig: {
      CookieBehavior: "all"
    },
    QueryStringsConfig: {
      QueryStringBehavior: "none"
    }
  }
});

Including Multiple Headers and Cookies ​

Demonstrate an Origin Request Policy that includes multiple headers and cookies, showcasing its flexibility.

ts
const complexOriginRequestPolicy = await AWS.CloudFront.OriginRequestPolicy("complexOriginRequestPolicy", {
  OriginRequestPolicyConfig: {
    Name: "ComplexPolicy",
    Comment: "A complex policy that includes multiple headers and cookies",
    HeadersConfig: {
      HeaderBehavior: "whitelist",
      Headers: ["Authorization", "Accept-Language", "X-Custom-Header"]
    },
    CookiesConfig: {
      CookieBehavior: "whitelist",
      Cookies: ["session_id", "user_id"]
    },
    QueryStringsConfig: {
      QueryStringBehavior: "all"
    }
  }
});