3.679.0 • Published 8 months ago

@aws-sdk/cloudfront-signer v3.679.0

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
8 months ago

@aws-sdk/cloudfront-signer

This package provides functions to generate signed urls and cookies for accessing private content on CloudFront based on a CloudFront trusted key group key pair.

Please note the process for creating a signed URL with Cloudfront is very different than the process for S3. For more information, please visit the documentation for restricting CloudFront content with signed URLs and signed cookies.

Sign a URL

JavaScript Example:

import { getSignedUrl } from "@aws-sdk/cloudfront-signer"; // ESM
// const { getSignedUrl } = require("@aws-sdk/cloudfront-signer"); // CJS

const cloudfrontDistributionDomain = "https://d111111abcdef8.cloudfront.net";
const s3ObjectKey = "private-content/private.jpeg";
const url = `${cloudfrontDistributionDomain}/${s3ObjectKey}`;
const privateKey = "CONTENTS-OF-PRIVATE-KEY";
const keyPairId = "PUBLIC-KEY-ID-OF-CLOUDFRONT-KEY-PAIR";
const dateLessThan = "2022-01-01"; // any Date constructor compatible

const signedUrl = getSignedUrl({
  url,
  keyPairId,
  dateLessThan,
  privateKey,
});

Sign a URL with a Policy

import { getSignedUrl } from "@aws-sdk/cloudfront-signer"; // ESM
// const { getSignedUrl } = require("@aws-sdk/cloudfront-signer"); // CJS

const cloudfrontDistributionDomain = "https://d111111abcdef8.cloudfront.net";
const s3ObjectKey = "private-content/private.jpeg";
const url = `${cloudfrontDistributionDomain}/${s3ObjectKey}`;
const privateKey = "CONTENTS-OF-PRIVATE-KEY";
const keyPairId = "PUBLIC-KEY-ID-OF-CLOUDFRONT-KEY-PAIR";
const dateLessThan = "2022-01-01";

const policy = {
  Statement: [
    {
      Resource: url,
      Condition: {
        DateLessThan: {
          "AWS:EpochTime": new Date(dateLessThan).getTime() / 1000, // time in seconds
        },
      },
    },
  ],
};

const policyString = JSON.stringify(policy);

const cookies = getSignedUrl({
  keyPairId,
  privateKey,
  policy: policyString,
  // url is automatically extracted from the policy, however you could still overwrite it if needed
});

Get signed cookies for a resource

import { getSignedCookies } from "@aws-sdk/cloudfront-signer"; // ESM
// const { getSignedCookies } = require("@aws-sdk/cloudfront-signer"); // CJS

const cloudfrontDistributionDomain = "https://d111111abcdef8.cloudfront.net";
const s3ObjectKey = "private-content/private.jpeg";
const url = `${cloudfrontDistributionDomain}/${s3ObjectKey}`;
const privateKey = "CONTENTS-OF-PRIVATE-KEY";
const keyPairId = "PUBLIC-KEY-ID-OF-CLOUDFRONT-KEY-PAIR";
const dateLessThan = "2022-01-01";

const cookies = getSignedCookies({
  url,
  keyPairId,
  dateLessThan,
  privateKey,
});

Get signed cookies with a Policy

import { getSignedCookies } from "@aws-sdk/cloudfront-signer"; // ESM
// const { getSignedCookies } = require("@aws-sdk/cloudfront-signer"); // CJS

const cloudfrontDistributionDomain = "https://d111111abcdef8.cloudfront.net";
const s3ObjectKey = "private-content/private.jpeg";
const url = `${cloudfrontDistributionDomain}/${s3ObjectKey}`;
const privateKey = "CONTENTS-OF-PRIVATE-KEY";
const keyPairId = "PUBLIC-KEY-ID-OF-CLOUDFRONT-KEY-PAIR";
const dateLessThan = "2022-01-01";

const policy = {
  Statement: [
    {
      Resource: url,
      Condition: {
        DateLessThan: {
          "AWS:EpochTime": new Date(dateLessThan).getTime() / 1000, // time in seconds
        },
      },
    },
  ],
};

const policyString = JSON.stringify(policy);

const cookies = getSignedCookies({
  keyPairId,
  privateKey,
  policy: policyString,
});
3.678.0

8 months ago

3.679.0

8 months ago

3.662.0

9 months ago

3.651.1

10 months ago

3.654.0

10 months ago

3.649.0

10 months ago

3.598.0

1 year ago

3.609.0

1 year ago

3.621.0

11 months ago

3.576.0

1 year ago

3.575.0

1 year ago

3.572.0

1 year ago

3.567.0

1 year ago

3.541.0

1 year ago

3.535.0

1 year ago

3.533.0

1 year ago

3.523.0

1 year ago

3.521.0

1 year ago

3.496.0

1 year ago

3.495.0

1 year ago

3.485.0

1 year ago

3.468.0

2 years ago

3.465.0

2 years ago

3.445.0

2 years ago

3.451.0

2 years ago

3.387.0

2 years ago

3.378.0

2 years ago

3.391.0

2 years ago

3.413.0

2 years ago

3.363.0

2 years ago

3.418.0

2 years ago

3.425.0

2 years ago

3.398.0

2 years ago

3.428.0

2 years ago

3.433.0

2 years ago

3.410.0

2 years ago

3.347.0

2 years ago

3.357.0

2 years ago

3.342.0

2 years ago

3.341.0

2 years ago

3.338.0

2 years ago

3.329.0

2 years ago

3.337.0

2 years ago

3.316.0

2 years ago

3.310.0

2 years ago

3.306.0

2 years ago

3.303.0

2 years ago

3.296.0

2 years ago

3.295.0

2 years ago

3.290.0

2 years ago

3.292.0

2 years ago

3.271.0

2 years ago

3.272.0

2 years ago

3.266.0

2 years ago

3.289.0

2 years ago

3.267.0

2 years ago

3.266.1

2 years ago

3.254.0

2 years ago

3.257.0

2 years ago

3.197.0

3 years ago

3.198.0

3 years ago

3.193.0

3 years ago

3.229.0

3 years ago

3.208.0

3 years ago

3.212.0

3 years ago

3.215.0

3 years ago

3.190.0

3 years ago

3.188.0

3 years ago

3.224.0

3 years ago

3.222.0

3 years ago

3.200.0

3 years ago

3.226.0

3 years ago

3.201.0

3 years ago

3.186.0

3 years ago

3.183.0

3 years ago

3.162.0

3 years ago

3.171.0

3 years ago

3.160.0

3 years ago

3.170.0

3 years ago

3.159.0

3 years ago

3.168.0

3 years ago

3.178.0

3 years ago

3.127.0

3 years ago

3.109.0

3 years ago

3.110.0

3 years ago

3.90.0

3 years ago