Skip to content

OriginAccessControl ​

The OriginAccessControl resource lets you manage AWS CloudFront Origin Access Controls which help to securely access your S3 origins by restricting access to only CloudFront.

Minimal Example ​

Create a basic Origin Access Control with required properties:

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

const originAccessControl = await AWS.CloudFront.OriginAccessControl("basicOriginAccessControl", {
  OriginAccessControlConfig: {
    Name: "MyOriginAccessControl",
    OriginAccessControlType: "S3",
    SigningBehavior: "always",
    SigningProtocol: "sigv4"
  }
});

Advanced Configuration ​

Configure an Origin Access Control with additional properties for enhanced security:

ts
const advancedOriginAccessControl = await AWS.CloudFront.OriginAccessControl("advancedOriginAccessControl", {
  OriginAccessControlConfig: {
    Name: "AdvancedOriginAccessControl",
    OriginAccessControlType: "S3",
    SigningBehavior: "always",
    SigningProtocol: "sigv4",
    Description: "This Origin Access Control allows secure access to my S3 bucket."
  },
  adopt: true // Adopt existing resource if it already exists
});

Monitoring and Logging ​

Set up an Origin Access Control with logging enabled for monitoring access:

ts
const monitoredOriginAccessControl = await AWS.CloudFront.OriginAccessControl("monitoredOriginAccessControl", {
  OriginAccessControlConfig: {
    Name: "MonitoredOriginAccessControl",
    OriginAccessControlType: "S3",
    SigningBehavior: "always",
    SigningProtocol: "sigv4",
    Description: "This Origin Access Control is used with logging enabled."
  },
  // Logging settings can be handled at the CloudFront distribution level
});