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
});