Skip to content

Commit 95d6ac1

Browse files
authored
Python: Adding ControlTower scenario and tests (#7482)
* Python control tower example
1 parent e9918f2 commit 95d6ac1

File tree

14 files changed

+2217
-0
lines changed

14 files changed

+2217
-0
lines changed
Lines changed: 176 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,176 @@
1+
controltower_Hello:
2+
title: Hello &CTowerlong;
3+
title_abbrev: Hello &CTower;
4+
synopsis: get started using &CTower;.
5+
category: Hello
6+
languages:
7+
Python:
8+
versions:
9+
- sdk_version: 3
10+
github: python/example_code/controltower
11+
excerpts:
12+
- description:
13+
snippet_tags:
14+
- python.example_code.controltower.Hello
15+
services:
16+
controltower: {ListBaselines}
17+
18+
controltower_ListBaselines:
19+
languages:
20+
Python:
21+
versions:
22+
- sdk_version: 3
23+
github: python/example_code/controltower
24+
excerpts:
25+
- description:
26+
snippet_tags:
27+
- python.example_code.controltower.ControlTowerWrapper.decl
28+
- python.example_code.controltower.ListBaselines
29+
services:
30+
controltower: {ListBaselines}
31+
32+
controltower_ListEnabledBaselines:
33+
languages:
34+
Python:
35+
versions:
36+
- sdk_version: 3
37+
github: python/example_code/controltower
38+
excerpts:
39+
- description:
40+
snippet_tags:
41+
- python.example_code.controltower.ControlTowerWrapper.decl
42+
- python.example_code.controltower.ListEnabledBaselines
43+
services:
44+
controltower: {ListEnabledBaselines}
45+
46+
controltower_EnableBaseline:
47+
languages:
48+
Python:
49+
versions:
50+
- sdk_version: 3
51+
github: python/example_code/controltower
52+
excerpts:
53+
- description:
54+
snippet_tags:
55+
- python.example_code.controltower.ControlTowerWrapper.decl
56+
- python.example_code.controltower.EnableBaseline
57+
services:
58+
controltower: {EnableBaseline}
59+
60+
controltower_ResetEnabledBaseline:
61+
languages:
62+
Python:
63+
versions:
64+
- sdk_version: 3
65+
github: python/example_code/controltower
66+
excerpts:
67+
- description:
68+
snippet_tags:
69+
- python.example_code.controltower.ControlTowerWrapper.decl
70+
- python.example_code.controltower.ResetEnabledBaseline
71+
services:
72+
controltower: {ResetEnabledBaseline}
73+
74+
controltower_DisableBaseline:
75+
languages:
76+
Python:
77+
versions:
78+
- sdk_version: 3
79+
github: python/example_code/controltower
80+
excerpts:
81+
- description:
82+
snippet_tags:
83+
- python.example_code.controltower.ControlTowerWrapper.decl
84+
- python.example_code.controltower.DisableBaseline
85+
services:
86+
controltower: {DisableBaseline}
87+
88+
controltower_ListEnabledControls:
89+
languages:
90+
Python:
91+
versions:
92+
- sdk_version: 3
93+
github: python/example_code/controltower
94+
excerpts:
95+
- description:
96+
snippet_tags:
97+
- python.example_code.controltower.ControlTowerWrapper.decl
98+
- python.example_code.controltower.ListEnabledControls
99+
services:
100+
controltower: {ListEnabledControls}
101+
102+
controltower_EnableControl:
103+
languages:
104+
Python:
105+
versions:
106+
- sdk_version: 3
107+
github: python/example_code/controltower
108+
excerpts:
109+
- description:
110+
snippet_tags:
111+
- python.example_code.controltower.ControlTowerWrapper.decl
112+
- python.example_code.controltower.EnableControl
113+
services:
114+
controltower: {EnableControl}
115+
116+
controltower_GetControlOperation:
117+
languages:
118+
Python:
119+
versions:
120+
- sdk_version: 3
121+
github: python/example_code/controltower
122+
excerpts:
123+
- description:
124+
snippet_tags:
125+
- python.example_code.controltower.ControlTowerWrapper.decl
126+
- python.example_code.controltower.GetControlOperation
127+
services:
128+
controltower: {GetControlOperation}
129+
130+
controltower_DisableControl:
131+
languages:
132+
Python:
133+
versions:
134+
- sdk_version: 3
135+
github: python/example_code/controltower
136+
excerpts:
137+
- description:
138+
snippet_tags:
139+
- python.example_code.controltower.ControlTowerWrapper.decl
140+
- python.example_code.controltower.DisableControl
141+
services:
142+
controltower: {DisableControl}
143+
144+
controltower_ListLandingZones:
145+
languages:
146+
Python:
147+
versions:
148+
- sdk_version: 3
149+
github: python/example_code/controltower
150+
excerpts:
151+
- description:
152+
snippet_tags:
153+
- python.example_code.controltower.ControlTowerWrapper.decl
154+
- python.example_code.controltower.ListLandingZones
155+
services:
156+
controltower: {ListLandingZones}
157+
158+
controltower_Scenario:
159+
synopsis_list:
160+
- List landing zones.
161+
- List, enable, get, reset, and disable baselines.
162+
- List, enable, get, and disable controls.
163+
category: Basics
164+
languages:
165+
Python:
166+
versions:
167+
- sdk_version: 3
168+
github: python/example_code/controltower
169+
sdkguide:
170+
excerpts:
171+
- description: Run an interactive scenario demonstrating &CTowerlong; features.
172+
snippet_tags:
173+
- python.example_code.controltower.ControlTowerScenario
174+
- python.example_code.controltower.ControlTowerWrapper.class
175+
services:
176+
controltower: {CreateLandingZone, DeleteLandingZone, ListBaselines, ListEnabledBaselines, EnableBaseline, ResetEnabledBaseline, DisableBaseline, EnableControl, GetControlOperation, DisableControl, GetLandingZoneOperation, ListLandingZones, ListEnabledControls}
Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
# AWS Control Tower code examples for the SDK for Python
2+
3+
## Overview
4+
5+
Shows how to use the AWS SDK for Python (Boto3) to work with AWS Control Tower.
6+
7+
<!--custom.overview.start-->
8+
<!--custom.overview.end-->
9+
10+
_AWS Control Tower enables you to enforce and manage governance rules for security, operations, and compliance at scale across all your organizations and accounts._
11+
12+
## ⚠ Important
13+
14+
* 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/).
15+
* Running the tests might result in charges to your AWS account.
16+
* 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).
17+
* 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).
18+
19+
<!--custom.important.start-->
20+
<!--custom.important.end-->
21+
22+
## Code examples
23+
24+
### Prerequisites
25+
26+
For prerequisites, see the [README](../../README.md#Prerequisites) in the `python` folder.
27+
28+
Install the packages required by these examples by running the following in a virtual environment:
29+
30+
```
31+
python -m pip install -r requirements.txt
32+
```
33+
34+
<!--custom.prerequisites.start-->
35+
Before running the example, set up a landing zone in order to run the baseline and control management sections.
36+
Follow the instructions provided by the [quick start](https://docs.aws.amazon.com/controltower/latest/userguide/quick-start.html) guide.
37+
<!--custom.prerequisites.end-->
38+
39+
### Get started
40+
41+
- [Hello AWS Control Tower](hello/hello_controltower.py#L4) (`ListBaselines`)
42+
43+
44+
### Basics
45+
46+
Code examples that show you how to perform the essential operations within a service.
47+
48+
- [Learn the basics](scenario_controltower.py)
49+
50+
51+
### Single actions
52+
53+
Code excerpts that show you how to call individual service functions.
54+
55+
- [DisableBaseline](controltower_wrapper.py#L392)
56+
- [DisableControl](controltower_wrapper.py#L263)
57+
- [EnableBaseline](controltower_wrapper.py#L69)
58+
- [EnableControl](controltower_wrapper.py#L159)
59+
- [GetControlOperation](controltower_wrapper.py#L209)
60+
- [ListBaselines](controltower_wrapper.py#L39)
61+
- [ListEnabledBaselines](controltower_wrapper.py#L330)
62+
- [ListEnabledControls](controltower_wrapper.py#L431)
63+
- [ListLandingZones](controltower_wrapper.py#L300)
64+
- [ResetEnabledBaseline](controltower_wrapper.py#L358)
65+
66+
67+
<!--custom.examples.start-->
68+
<!--custom.examples.end-->
69+
70+
## Run the examples
71+
72+
### Instructions
73+
74+
75+
<!--custom.instructions.start-->
76+
<!--custom.instructions.end-->
77+
78+
#### Hello AWS Control Tower
79+
80+
This example shows you how to get started using AWS Control Tower.
81+
82+
```
83+
python hello/hello_controltower.py
84+
```
85+
86+
#### Learn the basics
87+
88+
This example shows you how to do the following:
89+
90+
- List landing zones.
91+
- List, enable, get, reset, and disable baselines.
92+
- List, enable, get, and disable controls.
93+
94+
<!--custom.basic_prereqs.controltower_Scenario.start-->
95+
<!--custom.basic_prereqs.controltower_Scenario.end-->
96+
97+
Start the example by running the following at a command prompt:
98+
99+
```
100+
python scenario_controltower.py
101+
```
102+
103+
104+
<!--custom.basics.controltower_Scenario.start-->
105+
<!--custom.basics.controltower_Scenario.end-->
106+
107+
108+
### Tests
109+
110+
⚠ Running tests might result in charges to your AWS account.
111+
112+
113+
To find instructions for running these tests, see the [README](../../README.md#Tests)
114+
in the `python` folder.
115+
116+
117+
118+
<!--custom.tests.start-->
119+
<!--custom.tests.end-->
120+
121+
## Additional resources
122+
123+
- [AWS Control Tower User Guide](https://docs.aws.amazon.com/controltower/latest/userguide/what-is-control-tower.html)
124+
- [AWS Control Tower API Reference](https://docs.aws.amazon.com/controltower/latest/APIReference/Welcome.html)
125+
- [SDK for Python AWS Control Tower reference](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/cognito-idp.html)
126+
127+
<!--custom.resources.start-->
128+
<!--custom.resources.end-->
129+
130+
---
131+
132+
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
133+
134+
SPDX-License-Identifier: Apache-2.0

0 commit comments

Comments
 (0)