Skip to content

Commit d5962df

Browse files
authored
(docs)minor doc tweaks (aws-samples#567)
* (docs)minor doc tweaks - fix broken links and formatting - move sample snippets to sample_configs folder - minor install doc tweaks * update sm input parameters * add 3rd az, MAD/ADC in a,b
1 parent 3a9f33b commit d5962df

File tree

8 files changed

+150
-74
lines changed

8 files changed

+150
-74
lines changed

.github/workflows/documentation.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ jobs:
112112
-V geometry:margin=.8in
113113
-V documentclass=report
114114
--pdf-engine=xelatex
115-
./reference-artifacts/config-sample-snippets/sample_snippets.md
115+
./reference-artifacts/SAMPLE_CONFIGS/sample_snippets.md
116116
117117
- name: Copy file output 2e
118118
run: |
@@ -131,7 +131,7 @@ jobs:
131131
-V geometry:margin=.8in
132132
-V documentclass=report
133133
--pdf-engine=xelatex
134-
./reference-artifacts/config-sample-snippets/firewall_file_available_variables.md
134+
./reference-artifacts/SAMPLE_CONFIGS/firewall_file_available_variables.md
135135
136136
- name: PDF output 2g
137137
uses: docker://pandoc/latex:2.10

docs/installation/customization-index.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,15 +41,16 @@ Descriptions:
4141
- adds a local account specific VPC, in us-east-1, in the account MyUnClass and connects it to the us-east-1 TGW (i.e. shares TGW)
4242
- local account VPC set to use central endpoints, associates appropriate centralized hosted zones to VPC (also creates 5 local endpoints)
4343
- adds a VGW for DirectConnect to the perimeter VPC
44+
- adds the 3rd AZ in ca-central-1 (MAD & ADC in AZ a & b)
4445

4546
## 1.2. **Deployment Customizations**
4647

4748
- The sample configuration files are provided as single, all encompassing, json files. The Accelerator also supports both splitting the config file into multiple component files and configuration files built using YAML instead of json. This is documented [here](./multi-file-config-capabilities.md)
4849

49-
- The sample configuration files do not include the full range of supported configuration file parameters and values, additional configuration file parameters and values can be found [here](../../reference-artifacts/config-sample-snippets/sample_snippets.md)
50+
- The sample configuration files do not include the full range of supported configuration file parameters and values, additional configuration file parameters and values can be found [here](../../reference-artifacts/SAMPLE_CONFIGS/sample_snippets.md)
5051

5152
- The Accelerator is provided with a sample 3rd party configuration file to demonstrate automated deployment of 3rd party firewall technologies. Given the code is vendor agnostic, this process should be able to be leveraged to deploy other vendors firewall appliances. When and if other options become available, we will add them here as well.
52-
- Automated firewall configuration [customization](../../reference-artifacts/config-sample-snippets/firewall_file_available_variables.md) possibilities
53+
- Automated firewall configuration [customization](../../reference-artifacts/SAMPLE_CONFIGS/firewall_file_available_variables.md) possibilities
5354
- Sample Fortinet Fortigate firewall config [file](../../reference-artifacts/Third-Party/firewall-example.txt)
5455

5556
## 1.3. Other Configuration File Hints and Tips

docs/installation/installation.md

Lines changed: 18 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -97,10 +97,10 @@ If deploying the prescriptive architecture, you must decide on:
9797

9898
1. 2 Fortinet FortiGate firewall licenses (Evaluation licenses adequate) (can be added in future) (if firewalls are to be deployed)
9999
2. We also recommend at least 20 unique email ALIASES associated with a single mailbox, never used before to open AWS accounts, such that you do not need to request new email aliases every time you need to create a new AWS account.
100-
3. You additionally require email addresses for the following additionaly purposes (these can be existing monitored mailboxes and do not need to be unique):
100+
3. You additionally require email addresses for the following additionaly purposes (these can be existing monitored mailboxes and do not need to be unique):
101101
- Accelerator execution (state machine) notification events (1 address)
102102
- High, Medium and Low security alerts (3 addresses if you wish to segregate alerts)
103-
- Budget notifications
103+
- Budget notifications
104104

105105
## 2.3. Accelerator Pre-Install Steps
106106

@@ -117,22 +117,16 @@ Before installing, you must first:
117117
5. Verify the Organization Management (root) account email address
118118
- In AWS Organizations, Settings, ["Send Verification Request"](https://aws.amazon.com/blogs/security/aws-organizations-now-requires-email-address-verification/)
119119
6. Create a new KMS key to encrypt your source configuration bucket (you can use an existing key)
120-
121-
- AWS Key Management Service, Customer Managed Keys, Create Key, Symmetric, and then provide a key name
122-
(`PBMMAccel-Source-Bucket-Key`), Next
120+
- AWS Key Management Service, Customer Managed Keys, Create Key, Symmetric, and then provide a key name (`PBMMAccel-Source-Bucket-Key`), Next
123121
- Select a key administrator (Admin Role or Group for the Organization Management account), Next
124122
- Select key users (Admin Role or Group for the Organization Management account), Next
125123
- Validate an entry exists to "Enable IAM User Permissions" (critical step if using an existing key)
126-
- `"arn:aws:iam::123456789012:root"`, where `123456789012` is your **_Organization Management_** account id.
124+
- `"arn:aws:iam::123456789012:root"`, where `123456789012` is your **_Organization Management_** account id.
127125
- Click Finish
128-
129-
8. Enable `"Cost Explorer"` (My Account, Cost Explorer, Enable Cost Explorer)
130-
126+
7. Enable `"Cost Explorer"` (My Account, Cost Explorer, Enable Cost Explorer)
131127
- With recent platform changes, Cost Explorer _may_ now be auto-enabled (unable to confirm)
132-
133-
9. Enable `"Receive Billing Alerts"` (My Account, Billing Preferences, Receive Billing Alerts)
134-
10. It is **_extremely important_** that **_all_** the account contact details be validated in the Organization Management (root) account before deploying any new sub-accounts.
135-
128+
8. Enable `"Receive Billing Alerts"` (My Account, Billing Preferences, Receive Billing Alerts)
129+
9. It is **_extremely important_** that **_all_** the account contact details be validated in the Organization Management (root) account before deploying any new sub-accounts.
136130
- This information is copied to every new sub-account on creation.
137131
- Subsequent changes to this information require manually updating it in **\*each** sub-account.
138132
- Go to `My Account` and verify/update the information lists under both the `Contact Information` section and the `Alternate Contacts` section.
@@ -206,17 +200,16 @@ If deploying to an internal AWS employee account, to successfully install the so
206200
6. Place your customized config file, named `config.json` (or `config.yaml`), in your new bucket
207201
7. Place the firewall configuration and license files in the folder and path defined in the config file, if defined in the config file
208202
- i.e. `firewall/firewall-example.txt`, `firewall/license1.lic` and `firewall/license2.lic`
209-
- Sample available here: `./reference-artifacts/Third-Party/firewall-example.txt`
203+
- Sample available [here](../../reference-artifacts/Third-Party/firewall-example.txt): `./reference-artifacts/Third-Party/firewall-example.txt`
210204
- If you don't have any license files, update the config file with an empty array (`"license": []`). Do NOT use the following: `[""]`.
211205
8. Place any defined certificate files in the folder and path defined in the config file
212206
- i.e. `certs/example1-cert.key`, `certs/example1-cert.crt`
213-
- Sample available here: `./reference-artifacts/Certs-Sample/*`
207+
- Sample available [here](../../reference-artifacts/Certs-Sample/): `./reference-artifacts/Certs-Sample/*`
214208
- Ideally you would generate real certificates using your existing certificate authority
215209
- Should you wish, instructions are provided to aid in generating your own self-signed certificates (Self signed certificates are NOT secure and simply for demo purposes)
216210
- Use the examples to demonstrate Accelerator TLS functionality only
217211
9. Detach **_ALL_** SCPs (except `FullAWSAccess` which remains in place) from all OU's and accounts before proceeding
218-
219-
- Installation **will fail** if this step is skipped
212+
- Installation **will fail** if this step is skipped
220213

221214
## 2.5. Installation
222215

@@ -257,21 +250,23 @@ If deploying to an internal AWS employee account, to successfully install the so
257250
21. If deploying the prescriptive architecture, once the main state machine (`PBMMAccel-MainStateMachine_sm`) completes successfully, confirm the status of your perimeter firewall deployment.
258251
- While you can watch the state machine in Step Functions, you will also be notified via email when the State Machine completes (or fails). Successful state machine executions include a list of all accounts which were successfully processed by the Accelerator.
259252
22. If your perimeter firewalls were defined but not deployed on first run, you will need to rerun the state machine. This happens when:
260-
1. you were unable to activate the firewall AMI's before stage 2 (step 19)
253+
1. you were unable to activate the firewall AMI's before stage 2 (step 20)
261254
2. we were not able to fully activate your account before we were ready to deploy your firewalls. This case can be identified by a running EC2 micro instance in the account, or by looking for the following log entry 'Minimum 15 minutes of account warming required for account'.
262255
3. In these cases, simply select the `PBMMAccel-MainStateMachine_sm` in Step Functions and select `Start Execution`
263256

264257
### 2.5.1. Known Installation Issues
265258

266259
Current Issues:
267-
- All releases - Occassionally during new installs the state machine is failing due to a `File not found` error in the `VerifyFiles` step. Simply rerun the state machine. This will be resolved in v1.2.5.
268-
- All releases - Occassionally during new installs the perimeter firewall fails to load the provided prescriptive firewall configuration. Edit your config file changing `"firewalls":` to `"xxfirewalls":`, and rerun the state machine to remove the firewall deployment, then change your config file back to `"firewalls":` and again rerun your state machine to redeploy the firewalls. This will be resolved in v1.2.5.
269-
- All releases - During Guardduty deployment, occassionally CloudFormation fails to return a completion signal. After the credentials eventually fail (1 hr), the state machine fails. As the credentials timed out, we cannot properly cleanup the failed stack. You need to manually find the failed stack in the specific account/region, delete it, and then rerun the state machine. We have been unable to resolve this issue.
270260

271-
Old Issues:
261+
- Releases prior to v1.2.5 - Occassionally during new installs the state machine is failing due to a `File not found` error in the `VerifyFiles` step. Simply rerun the state machine. This is resolved in v1.2.5.
262+
- Releases prior to v1.2.5 - Occassionally during new installs the perimeter firewall fails to load the provided prescriptive firewall configuration. Edit your config file changing `"firewalls":` to `"xxfirewalls":`, and rerun the state machine to remove the firewall deployment, then change your config file back to `"firewalls":` and again rerun your state machine to redeploy the firewalls. This is resolved in v1.2.5.
263+
264+
Issues in Older Releases:
265+
266+
- Releases prior to v1.2.4 will fail to deploy due to a change in an unpinned 3rd party dependency. This is resolved in v1.2.4 (all dependencies were pinned in v1.2.5).
267+
- Releases prior to v1.2.4 - During Guardduty deployment, occassionally CloudFormation fails to return a completion signal. After the credentials eventually fail (1 hr), the state machine fails. As the credentials timed out, we cannot properly cleanup the failed stack. You need to manually find the failed stack in the specific account/region, delete it, and then rerun the state machine. It appears the API has been fixed.
272268
- Releases prior to v1.2.3 using a YAML config file - we are seeing the OUValidation Lambda randomly timeout. Simply rerun the state machine. This is resolved in v1.2.3.
273269
- Accelerator v1.2.1b may experience a state machine failure when running `Create Config Recorders` due to an `Insufficient Delivery Policy Exception`. Simply rerun the State Machine. This is resolved in v1.2.2.
274-
- Standalone Accelerator versions prior to v1.1.8 required manual creation of the core ou and moving the Organization Management AWS account into it before running the State Machine. If this step is missed, once the SM fails, simply move the Organization Management account into the auto-created core ou and rerun the state machine. This is resolved in v1.1.8.
275270
- Releases prior to v1.2.2 where the home region is not ca-central-1, alb deployments will fail, you need to either: a) remove all alb's from the deployment; or b) after the state machine fails, update the central logging bucket (in the log-archive account) policy with your regions [`elb-account-id`](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-access-logs.html). (i.e. replace `985666609251` with the value for your region)
276271

277272
## 2.6. Post-Installation

docs/installation/sm_inputs.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# 1. Accelerator State Machine Inputs
2+
3+
## 1.1. Rebuild DynamoDB table contents
4+
5+
With the exception of the Outputs table, the contents of the Accelerator DynamoDB tables are rebuilt on every state machine execution. We recently started depending on the Outputs DynamoDB tables to ensure the parameters in parameter store are consistently maintained in the same order as objects are created and deleted. Should the CONTENTS of the tables be destroyed or corrupted, customers can force a rebuild of the CloudFormation Outputs in DynamoDB by starting the state machine with the parameter:
6+
7+
```
8+
{ "storeAllOutputs": true }
9+
```
10+
11+
This should be completed BEFORE running the state machine with a corrupt or empty DynamoDB table or the Accelerator is likely to reorder a customers parameters. If the DynamoDB tables were completely destroyed, they must be recreated before running the state machine with this parameter.
12+
13+
## 1.2. Bypass **ALL** config file validation checks
14+
15+
This parameter should be specified with extreme caution, as it bypasses all config file validation. The state machine typically has protections enabled preventing customers from making breaking changes to the config file. Under certain conditions with the support of a trained expert, bypassing these checks is required. Start the state machine with the parameter:
16+
17+
```
18+
{ "overrideComparison": true }
19+
```
20+
21+
**_Customers are encouraged to use the specific overide variables below, rather than the all-inclusive overide, to ensure they only bypasses intended config changes._**
22+
23+
## 1.3. Bypassing SPECIFIC config file validation checks
24+
25+
Providing any one or more of the following flags will only overide the specified check(s):
26+
27+
```
28+
{
29+
"configOverrides": {
30+
'ov-global-options': true,
31+
'ov-del-accts': true,
32+
'ov-ren-accts': true,
33+
'ov-acct-email': true,
34+
'ov-acct-ou': true,
35+
'ov-acct-vpc': true,
36+
'ov-acct-subnet': true,
37+
'ov-tgw': true,
38+
'ov-mad': true,
39+
'ov-ou-vpc': true,
40+
'ov-ou-subnet': true,
41+
'ov-share-to-ou': true,
42+
'ov-share-to-accounts': true,
43+
'ov-nacl': true
44+
}
45+
}
46+
```
47+
48+
---
49+
50+
[...Return to Accelerator Table of Contents](../index.md)

docs/operations/operations-troubleshooting-guide.md

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -708,23 +708,33 @@ Providing any one or more of the following flags will only overide the specified
708708

709709
```
710710
{
711-
'ov-global-options': true,
712-
'ov-del-accts': true,
713-
'ov-ren-accts': true,
714-
'ov-acct-email': true,
715-
'ov-acct-ou': true,
716-
'ov-acct-vpc': true,
717-
'ov-acct-subnet': true,
718-
'ov-tgw': true,
719-
'ov-mad': true,
720-
'ov-ou-vpc': true,
721-
'ov-ou-subnet': true,
722-
'ov-share-to-ou': true,
723-
'ov-share-to-accounts': true,
724-
'ov-nacl': true
711+
"configOverrides": {
712+
'ov-global-options': true,
713+
'ov-del-accts': true,
714+
'ov-ren-accts': true,
715+
'ov-acct-email': true,
716+
'ov-acct-ou': true,
717+
'ov-acct-vpc': true,
718+
'ov-acct-subnet': true,
719+
'ov-tgw': true,
720+
'ov-mad': true,
721+
'ov-ou-vpc': true,
722+
'ov-ou-subnet': true,
723+
'ov-share-to-ou': true,
724+
'ov-share-to-accounts': true,
725+
'ov-nacl': true
726+
}
725727
}
726728
```
727729

730+
Providing this value allows for the forced rebuilding of the DynamoDB Outputs table:
731+
732+
```
733+
{
734+
"storeAllOutputs": true
735+
}
736+
```
737+
728738
## 5.2. Switch To a Managed Account
729739

730740
To switch from the root account to a managed account you can click on your account name in the AWS Console. Then choose `Switch Role` in the menu.

0 commit comments

Comments
 (0)