AWS Control Catalog

2024/08/01 - AWS Control Catalog - 2 new api methods

Changes  AWS Control Tower provides two new public APIs controlcatalog:ListControls and controlcatalog:GetControl under controlcatalog service namespace, which enable customers to programmatically retrieve control metadata of available controls.

GetControl (new) Link ¶

Returns details about a specific control, most notably a list of Amazon Web Services Regions where this control is supported. Input a value for the ControlArn parameter, in ARN form. GetControl accepts controltower or controlcatalog control ARNs as input. Returns a controlcatalog ARN format.

In the API response, controls that have the value GLOBAL in the Scope field do not show the DeployableRegions field, because it does not apply. Controls that have the value REGIONAL in the Scope field return a value for the DeployableRegions field, as shown in the example.

See also: AWS API Documentation

Request Syntax

client.get_control(
    ControlArn='string'
)
type ControlArn

string

param ControlArn

[REQUIRED]

The Amazon Resource Name (ARN) of the control. It has one of the following formats:

Global format

arn:{PARTITION}:controlcatalog:::control/{CONTROL_CATALOG_OPAQUE_ID}

Or Regional format

arn:{PARTITION}:controltower:{REGION}::control/{CONTROL_TOWER_OPAQUE_ID}

Here is a more general pattern that covers Amazon Web Services Control Tower and Control Catalog ARNs:

^arn:(aws(?:[-a-z]*)?):(controlcatalog|controltower):[a-zA-Z0-9-]*::control/[0-9a-zA-Z_\\-]+$

rtype

dict

returns

Response Syntax

{
    'Arn': 'string',
    'Name': 'string',
    'Description': 'string',
    'Behavior': 'PREVENTIVE'|'PROACTIVE'|'DETECTIVE',
    'RegionConfiguration': {
        'Scope': 'GLOBAL'|'REGIONAL',
        'DeployableRegions': [
            'string',
        ]
    }
}

Response Structure

  • (dict) --

    • Arn (string) --

      The Amazon Resource Name (ARN) of the control.

    • Name (string) --

      The display name of the control.

    • Description (string) --

      A description of what the control does.

    • Behavior (string) --

      A term that identifies the control's functional behavior. One of Preventive , Deteictive , Proactive

    • RegionConfiguration (dict) --

      Returns information about the control, including the scope of the control, if enabled, and the Regions in which the control currently is available for deployment.

      If you are applying controls through an Amazon Web Services Control Tower landing zone environment, remember that the values returned in the RegionConfiguration API operation are not related to the governed Regions in your landing zone. For example, if you are governing Regions A , B ,and C while the control is available in Regions A , B , C , and D , you'd see a response with DeployableRegions of A , B , C , and D for a control with REGIONAL scope, even though you may not intend to deploy the control in Region D , because you do not govern it through your landing zone.

      • Scope (string) --

        The coverage of the control, if deployed. Scope is an enumerated type, with value Regional , or Global . A control with Global scope is effective in all Amazon Web Services Regions, regardless of the Region from which it is enabled, or to which it is deployed. A control implemented by an SCP is usually Global in scope. A control with Regional scope has operations that are restricted specifically to the Region from which it is enabled and to which it is deployed. Controls implemented by Config rules and CloudFormation hooks usually are Regional in scope. Security Hub controls usually are Regional in scope.

      • DeployableRegions (list) --

        Regions in which the control is available to be deployed.

        • (string) --

ListControls (new) Link ¶

Returns a paginated list of all available controls in the Amazon Web Services Control Catalog library. Allows you to discover available controls. The list of controls is given as structures of type controlSummary . The ARN is returned in the global controlcatalog format, as shown in the examples.

See also: AWS API Documentation

Request Syntax

client.list_controls(
    NextToken='string',
    MaxResults=123
)
type NextToken

string

param NextToken

The pagination token that's used to fetch the next set of results.

type MaxResults

integer

param MaxResults

The maximum number of results on a page or for an API request call.

rtype

dict

returns

Response Syntax

{
    'Controls': [
        {
            'Arn': 'string',
            'Name': 'string',
            'Description': 'string'
        },
    ],
    'NextToken': 'string'
}

Response Structure

  • (dict) --

    • Controls (list) --

      Returns a list of controls, given as structures of type controlSummary .

      • (dict) --

        Overview of information about a control.

        • Arn (string) --

          The Amazon Resource Name (ARN) of the control.

        • Name (string) --

          The display name of the control.

        • Description (string) --

          A description of the control, as it may appear in the console. Describes the functionality of the control.

    • NextToken (string) --

      The pagination token that's used to fetch the next set of results.