Select your cookie preferences

We use essential cookies and similar tools that are necessary to provide our site and services. We use performance cookies to collect anonymous statistics, so we can understand how customers use our site and make improvements. Essential cookies cannot be deactivated, but you can choose “Customize” or “Decline” to decline performance cookies.

If you agree, AWS and approved third parties will also use cookies to provide useful site features, remember your preferences, and display relevant content, including relevant advertising. To accept or decline all non-essential cookies, choose “Accept” or “Decline.” To make more detailed choices, choose “Customize.”

Use resources from the AWS CloudFormation Public Registry

Focus mode
Use resources from the AWS CloudFormation Public Registry - AWS Cloud Development Kit (AWS CDK) v2

This is the AWS CDK v2 Developer Guide. The older CDK v1 entered maintenance on June 1, 2022 and ended support on June 1, 2023.

This is the AWS CDK v2 Developer Guide. The older CDK v1 entered maintenance on June 1, 2022 and ended support on June 1, 2023.

The AWS CloudFormation Public Registry lets you manage extensions, both public and private, such as resources, modules, and hooks that are available for use in your AWS account. You can use public resource extensions in your AWS Cloud Development Kit (AWS CDK) applications with the CfnResource construct.

To learn more about the AWS CloudFormation Public Registry, see Using the AWS CloudFormation registry in the AWS CloudFormation User Guide.

All public extensions published by AWS are available to all accounts in all Regions without any action on your part. However, you must activate each third-party extension you want to use, in each account and Region where you want to use it.

Note

When you use AWS CloudFormation with third-party resource types, you will incur charges. Charges are based on the number of handler operations you run per month and handler operation duration. See CloudFormation pricing for complete details.

To learn more about public extensions, see Using public extensions in CloudFormation in the AWS CloudFormation User Guide

Activate a third-party resource in your account and Region

Extensions published by AWS do not require activation. They are always available in every account and Region. You can activate a third-party extension through the AWS Management Console, via the AWS Command Line Interface, or by deploying a special AWS CloudFormation resource.

To activate a third-party extension through the AWS Management Console or see what resources are available
CloudFormation registry interface showing public extensions and AWSQS::EKS::Cluster resource type.
  1. Sign in to the AWS account in which you want to use the extension, then switch to the Region where you want to use it.

  2. Navigate to the CloudFormation console via the Services menu.

  3. Choose Public extensions on the navigation bar, then activate the Third party radio button under Publisher. A list of the available third-party public extensions appears. (You may also choose AWS to see a list of the public extensions published by AWS, though you don't need to activate them.)

  4. Browse the list and find the extension you want to activate. Alternatively, search for it, then activate the radio button in the upper right corner of the extension's card.

  5. Choose the Activate button at the top of the list to activate the selected extension. The extension's Activate page appears.

  6. In the Activate page, you can override the extension's default name and specify an execution role and logging configuration. You can also choose whether to automatically update the extension when a new version is released. When you have set these options as you like, choose Activate extension at the bottom of the page.

To activate a third-party extension using the AWS CLI
  • Use the activate-type command. Substitute the ARN of the custom type you want to use where indicated.

    The following is an example:

    aws cloudformation activate-type --public-type-arn public_extension_ARN --auto-update-activated
To activate a third-party extension through CloudFormation or CDK
  • Deploy a resource of type AWS::CloudFormation::TypeActivation and specify the following properties:

    1. TypeName - The name of the type, such as AWSQS::EKS::Cluster.

    2. MajorVersion - The major version number of the extension that you want. Omit if you want the latest version.

    3. AutoUpdate - Whether to automatically update this extension when a new minor version is released by the publisher. (Major version updates require explicitly changing the MajorVersion property.)

    4. ExecutionRoleArn - The ARN of the IAM role under which this extension will run.

    5. LoggingConfig - The logging configuration for the extension.

    The TypeActivation resource can be deployed by the CDK using the CfnResource construct. This is shown for the actual extensions in the following section.

Add a resource from the AWS CloudFormation Public Registry to your CDK app

Use the CfnResource construct to include a resource from the AWS CloudFormation Public Registry in your application. This construct is in the CDK's aws-cdk-lib module.

For example, suppose that there is a public resource named MY::S5::UltimateBucket that you want to use in your AWS CDK application. This resource takes one property: the bucket name. The corresponding CfnResource instantiation looks like this.

TypeScript
const ubucket = new CfnResource(this, 'MyUltimateBucket', { type: 'MY::S5::UltimateBucket::MODULE', properties: { BucketName: 'UltimateBucket' } });
JavaScript
const ubucket = new CfnResource(this, 'MyUltimateBucket', { type: 'MY::S5::UltimateBucket::MODULE', properties: { BucketName: 'UltimateBucket' } });
Python
ubucket = CfnResource(self, "MyUltimateBucket", type="MY::S5::UltimateBucket::MODULE", properties=dict( BucketName="UltimateBucket"))
Java
CfnResource.Builder.create(this, "MyUltimateBucket") .type("MY::S5::UltimateBucket::MODULE") .properties(java.util.Map.of( // Map.of requires Java 9+ "BucketName", "UltimateBucket")) .build();
C#
new CfnResource(this, "MyUltimateBucket", new CfnResourceProps { Type = "MY::S5::UltimateBucket::MODULE", Properties = new Dictionary<string, object> { ["BucketName"] = "UltimateBucket" } });
const ubucket = new CfnResource(this, 'MyUltimateBucket', { type: 'MY::S5::UltimateBucket::MODULE', properties: { BucketName: 'UltimateBucket' } });
PrivacySite termsCookie preferences
© 2025, Amazon Web Services, Inc. or its affiliates. All rights reserved.