Welcome
AWS Control Tower offers application programming interface (API) operations that support programmatic interaction with these types of resources:
For more information about these types of resources, see the AWS Control Tower User Guide.
About control APIs
These interfaces allow you to apply the AWS library of pre-defined controls to your organizational units, programmatically. In AWS Control Tower, the terms "control" and "guardrail" are synonyms.
To call these APIs, you'll need to know:
-
the
controlIdentifier
for the control--or guardrail--you are targeting. -
the ARN associated with the target organizational unit (OU), which we call the
targetIdentifier
. -
the ARN associated with a resource that you wish to tag or untag.
To get the controlIdentifier
for your AWS Control Tower control:
The controlIdentifier
is an ARN that is specified for each control. You can
view the controlIdentifier
in the console on the Control
details page, as well as in the documentation.
About identifiers for AWS Control Tower
The AWS Control Tower controlIdentifier
is unique in each AWS Region for each
control. You can find the controlIdentifier
for each Region and control in the
Tables of control metadata or the Control
availability by Region tables in the
AWS Control Tower
Controls Reference Guide.
A quick-reference list of control identifers for the AWS Control Tower legacy Strongly recommended and Elective controls is given in Resource identifiers for APIs and controls in the AWS Control Tower Controls Reference Guide. Remember that Mandatory controls cannot be added or removed.
Note
Some controls have two identifiers
-
ARN format for AWS Control Tower:
arn:aws:controltower:{REGION}::control/{CONTROL_TOWER_OPAQUE_ID}
Example:
arn:aws:controltower:us-west-2::control/AWS-GR_AUTOSCALING_LAUNCH_CONFIG_PUBLIC_IP_DISABLED
-
ARN format for AWS Control Catalog:
arn:{PARTITION}:controlcatalog:::control/{CONTROL_CATALOG_OPAQUE_ID}
You can find the {CONTROL_CATALOG_OPAQUE_ID}
in the
AWS Control Tower Controls Reference
Guide, or in the AWS Control Tower console, on the
Control details page.
The AWS Control Tower APIs for enabled controls, such as
GetEnabledControl
and ListEnabledControls
always return an
ARN of the same type given when the control was enabled.
To get the targetIdentifier
:
The targetIdentifier
is the ARN for an OU.
In the AWS Organizations console, you can find the ARN for the OU on the Organizational unit details page associated with that OU.
Note
OU ARN format:
arn:${Partition}:organizations::${MasterAccountId}:ou/o-${OrganizationId}/ou-${OrganizationalUnitId}
About landing zone APIs
You can configure and launch an AWS Control Tower landing zone with APIs. For an introduction and steps, see Getting started with AWS Control Tower using APIs.
For an overview of landing zone API operations, see AWS Control Tower supports landing zone APIs. The individual API operations for landing zones are detailed in this document, the API reference manual, in the "Actions" section.
About baseline APIs
You can apply the AWSControlTowerBaseline
baseline to an organizational
unit (OU) as a way to register the OU with AWS Control Tower,
programmatically. For a general overview of this capability, see AWS Control Tower supports APIs for OU registration and configuration
with baselines.
You can call the baseline API operations to view the baselines that AWS Control Tower enables for your landing zone, on your behalf, when setting up the landing zone. These baselines are read-only baselines.
The individual API operations for baselines are detailed in this document, the API reference manual, in the "Actions" section. For usage examples, see Baseline API input and output examples with CLI.
About AWS Control Catalog identifiers
-
The
EnableControl
andDisableControl
API operations can be called by specifying either the AWS Control Tower identifer or the AWS Control Catalog identifier. The API response returns the same type of identifier that you specified when calling the API. -
If you use an AWS Control Tower identifier to call the
EnableControl
API, and then callEnableControl
again with an AWS Control Catalog identifier, AWS Control Tower returns an error message stating that the control is already enabled. Similar behavior applies to theDisableControl
API operation. -
Mandatory controls and the landing-zone-level Region deny control have AWS Control Tower identifiers only.
Details and examples
To view the open source resource repository on GitHub, see aws-cloudformation/aws-cloudformation-resource-providers-controltower
Recording API Requests
AWS Control Tower supports AWS CloudTrail, a service that records AWS API calls for your AWS account and delivers log files to an Amazon S3 bucket. By using information collected by CloudTrail, you can determine which requests the AWS Control Tower service received, who made the request and when, and so on. For more about AWS Control Tower and its support for CloudTrail, see Logging AWS Control Tower Actions with AWS CloudTrail in the AWS Control Tower User Guide. To learn more about CloudTrail, including how to turn it on and find your log files, see the AWS CloudTrail User Guide.
This document was last published on October 14, 2024.