Skip to content

Python: Adding ControlTower scenario and tests #7482

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 13 commits into
base: main
Choose a base branch
from
Open
176 changes: 176 additions & 0 deletions .doc_gen/metadata/controltower_metadata.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,176 @@
controltower_Hello:
title: Hello &CTowerlong;
title_abbrev: Hello &CTower;
synopsis: get started using &CTower;.
category: Hello
languages:
Python:
versions:
- sdk_version: 3
github: python/example_code/controltower
excerpts:
- description:
snippet_tags:
- python.example_code.controltower.Hello
services:
controltower: {ListBaselines}

controltower_ListBaselines:
languages:
Python:
versions:
- sdk_version: 3
github: python/example_code/controltower
excerpts:
- description:
snippet_tags:
- python.example_code.controltower.ControlTowerWrapper.decl
- python.example_code.controltower.ListBaselines
services:
controltower: {ListBaselines}

controltower_ListEnabledBaselines:
languages:
Python:
versions:
- sdk_version: 3
github: python/example_code/controltower
excerpts:
- description:
snippet_tags:
- python.example_code.controltower.ControlTowerWrapper.decl
- python.example_code.controltower.ListEnabledBaselines
services:
controltower: {ListEnabledBaselines}

controltower_EnableBaseline:
languages:
Python:
versions:
- sdk_version: 3
github: python/example_code/controltower
excerpts:
- description:
snippet_tags:
- python.example_code.controltower.ControlTowerWrapper.decl
- python.example_code.controltower.EnableBaseline
services:
controltower: {EnableBaseline}

controltower_ResetEnabledBaseline:
languages:
Python:
versions:
- sdk_version: 3
github: python/example_code/controltower
excerpts:
- description:
snippet_tags:
- python.example_code.controltower.ControlTowerWrapper.decl
- python.example_code.controltower.ResetEnabledBaseline
services:
controltower: {ResetEnabledBaseline}

controltower_DisableBaseline:
languages:
Python:
versions:
- sdk_version: 3
github: python/example_code/controltower
excerpts:
- description:
snippet_tags:
- python.example_code.controltower.ControlTowerWrapper.decl
- python.example_code.controltower.DisableBaseline
services:
controltower: {DisableBaseline}

controltower_ListEnabledControls:
languages:
Python:
versions:
- sdk_version: 3
github: python/example_code/controltower
excerpts:
- description:
snippet_tags:
- python.example_code.controltower.ControlTowerWrapper.decl
- python.example_code.controltower.ListEnabledControls
services:
controltower: {ListEnabledControls}

controltower_EnableControl:
languages:
Python:
versions:
- sdk_version: 3
github: python/example_code/controltower
excerpts:
- description:
snippet_tags:
- python.example_code.controltower.ControlTowerWrapper.decl
- python.example_code.controltower.EnableControl
services:
controltower: {EnableControl}

controltower_GetControlOperation:
languages:
Python:
versions:
- sdk_version: 3
github: python/example_code/controltower
excerpts:
- description:
snippet_tags:
- python.example_code.controltower.ControlTowerWrapper.decl
- python.example_code.controltower.GetControlOperation
services:
controltower: {GetControlOperation}

controltower_DisableControl:
languages:
Python:
versions:
- sdk_version: 3
github: python/example_code/controltower
excerpts:
- description:
snippet_tags:
- python.example_code.controltower.ControlTowerWrapper.decl
- python.example_code.controltower.DisableControl
services:
controltower: {DisableControl}

controltower_ListLandingZones:
languages:
Python:
versions:
- sdk_version: 3
github: python/example_code/controltower
excerpts:
- description:
snippet_tags:
- python.example_code.controltower.ControlTowerWrapper.decl
- python.example_code.controltower.ListLandingZones
services:
controltower: {ListLandingZones}

controltower_Scenario:
synopsis_list:
- List landing zones.
- List, enable, get, reset, and disable baselines.
- List, enable, get, and disable controls.
category: Basics
languages:
Python:
versions:
- sdk_version: 3
github: python/example_code/controltower
sdkguide:
excerpts:
- description: Run an interactive scenario demonstrating &CTowerlong; features.
snippet_tags:
- python.example_code.controltower.ControlTowerScenario
- python.example_code.controltower.ControlTowerWrapper.class
services:
controltower: {CreateLandingZone, DeleteLandingZone, ListBaselines, ListEnabledBaselines, EnableBaseline, ResetEnabledBaseline, DisableBaseline, EnableControl, GetControlOperation, DisableControl, GetLandingZoneOperation, ListLandingZones, ListEnabledControls}
134 changes: 134 additions & 0 deletions python/example_code/controltower/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
# AWS Control Tower code examples for the SDK for Python

## Overview

Shows how to use the AWS SDK for Python (Boto3) to work with AWS Control Tower.

<!--custom.overview.start-->
<!--custom.overview.end-->

_AWS Control Tower enables you to enforce and manage governance rules for security, operations, and compliance at scale across all your organizations and accounts._

## ⚠ Important

* Running this code might result in charges to your AWS account. For more details, see [AWS Pricing](https://aws.amazon.com/pricing/) and [Free Tier](https://aws.amazon.com/free/).
* Running the tests might result in charges to your AWS account.
* We recommend that you grant your code least privilege. At most, grant only the minimum permissions required to perform the task. For more information, see [Grant least privilege](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege).
* This code is not tested in every AWS Region. For more information, see [AWS Regional Services](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services).

<!--custom.important.start-->
<!--custom.important.end-->

## Code examples

### Prerequisites

For prerequisites, see the [README](../../README.md#Prerequisites) in the `python` folder.

Install the packages required by these examples by running the following in a virtual environment:

```
python -m pip install -r requirements.txt
```

<!--custom.prerequisites.start-->
Before running the example, set up a landing zone in order to run the baseline and control management sections.
Follow the instructions provided by the [quick start](https://docs.aws.amazon.com/controltower/latest/userguide/quick-start.html) guide.
<!--custom.prerequisites.end-->

### Get started

- [Hello AWS Control Tower](hello/hello_controltower.py#L4) (`ListBaselines`)


### Basics

Code examples that show you how to perform the essential operations within a service.

- [Learn the basics](scenario_controltower.py)


### Single actions

Code excerpts that show you how to call individual service functions.

- [DisableBaseline](controltower_wrapper.py#L365)
- [DisableControl](controltower_wrapper.py#L240)
- [EnableBaseline](controltower_wrapper.py#L64)
- [EnableControl](controltower_wrapper.py#L143)
- [GetControlOperation](controltower_wrapper.py#L186)
- [ListBaselines](controltower_wrapper.py#L36)
- [ListEnabledBaselines](controltower_wrapper.py#L305)
- [ListEnabledControls](controltower_wrapper.py#L401)
- [ListLandingZones](controltower_wrapper.py#L278)
- [ResetEnabledBaseline](controltower_wrapper.py#L332)


<!--custom.examples.start-->
<!--custom.examples.end-->

## Run the examples

### Instructions


<!--custom.instructions.start-->
<!--custom.instructions.end-->

#### Hello AWS Control Tower

This example shows you how to get started using AWS Control Tower.

```
python hello/hello_controltower.py
```

#### Learn the basics

This example shows you how to do the following:

- List landing zones.
- List, enable, get, reset, and disable baselines.
- List, enable, get, and disable controls.

<!--custom.basic_prereqs.controltower_Scenario.start-->
<!--custom.basic_prereqs.controltower_Scenario.end-->

Start the example by running the following at a command prompt:

```
python scenario_controltower.py
```


<!--custom.basics.controltower_Scenario.start-->
<!--custom.basics.controltower_Scenario.end-->


### Tests

⚠ Running tests might result in charges to your AWS account.


To find instructions for running these tests, see the [README](../../README.md#Tests)
in the `python` folder.



<!--custom.tests.start-->
<!--custom.tests.end-->

## Additional resources

- [AWS Control Tower User Guide](https://docs.aws.amazon.com/controltower/latest/userguide/what-is-control-tower.html)
- [AWS Control Tower API Reference](https://docs.aws.amazon.com/controltower/latest/APIReference/Welcome.html)
- [SDK for Python AWS Control Tower reference](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/cognito-idp.html)

<!--custom.resources.start-->
<!--custom.resources.end-->

---

Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.

SPDX-License-Identifier: Apache-2.0
Loading
Loading