You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -50,34 +50,109 @@ This step-by-step process outlines how to deploy AWS accounts using `atmos` work
50
50
<Step>
51
51
## <StepNumber/> Confirm the Root Account is configured as an Organization
52
52
53
-
The previous step will create the AWS Organization and configure the `core-root` account as the "root" account. Take the time now to verify that the root account is configured as an AWS Organization. and that [AWS RAM for Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_enable-ram.html) is enabled, which is required for connecting the Organization.
53
+
The previous step will create the AWS Organization and configure the `core-root` account as the "root" account. Take the time now to verify that the root account is configured as an AWS Organization and that [AWS RAM for Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_enable-ram.html) is enabled, which is required for connecting the Organization.
54
+
55
+
**Check Organization Status:**
56
+
57
+
```bash
58
+
# Check if AWS Organization exists and get its details
59
+
aws organizations describe-organization
60
+
61
+
# Or specifically check if RAM for Organizations is enabled
The `FeatureSet` should return `ALL` if RAM for Organizations is enabled, or `CONSOLIDATED_BILLING` if it's not enabled.
66
+
</Step>
67
+
68
+
<Step>
69
+
## <StepNumber/> Confirm Root Account Name
70
+
71
+
After deploying the AWS Organization, verify the **account name** of the root (a.k.a. management/payer) account and ensure it's set in the `account-map` catalog. This is the human-readable **account name**, not the account alias. While we default to `root`, it may have been set to your company name or another custom label when the account was originally created.
72
+
73
+
<details>
74
+
<summary><strong>Why this is needed?</strong></summary>
75
+
76
+
The root account has two different names:
77
+
78
+
- **AWS Account Name**: The name you typed when originally creating the AWS account (often "root" but can be different)
79
+
- **Account Alias**: The deterministic name set in the account configuration (e.g., "core-root")
80
+
</details>
81
+
82
+
The account-map component needs to know the actual AWS account name to properly map accounts.
83
+
84
+
**To find your root account name:**
85
+
86
+
```bash
87
+
# Make sure you're using a user with access to your root account, such as SuperAdmin
Update `stacks/catalog/account-map.yaml` to set the correct root account name:
96
+
97
+
```yaml
98
+
components:
99
+
terraform:
100
+
account-map:
101
+
vars:
102
+
root_account_aws_name: "your-actual-root-account-name"# The name from the AWS Organizations output
103
+
root_account_account_name: "core-root"# This should always be "core-root"
104
+
```
105
+
106
+
<Note title="Common Issue">
107
+
If you encounter an error such as the following in subsequent deployments, it's usually because the `root_account_aws_name` is not correctly set in the `account-map` configuration.
108
+
109
+
```console
110
+
The given key does not identify an element in this collection value
111
+
```
112
+
</Note>
54
113
</Step>
55
114
56
115
<Step>
57
116
## <StepNumber/> Raise Account Limits
58
117
59
118
If you haven't already completed the Account Quota increase, now is the time to do so. To deploy all accounts, we need to request an increase of the Account Quota from AWS support, which requires an AWS Organization to be created first.
60
119
61
-
From the `root` account (not `SuperAdmin`), increase the [account quota to 20+](https://us-east-1.console.aws.amazon.com/servicequotas/home/services/organizations/quotas) for the Cloud Posse reference architecture, or more depending on your business use-case
120
+
From the `root` account (not `SuperAdmin`), increase the [account quota to 20+](https://us-east-1.console.aws.amazon.com/servicequotas/home/services/organizations/quotas) for the Cloud Posse reference architecture, or more depending on your business use-case.
62
121
122
+
**Alternative: Use AWS CLI**
123
+
124
+
You can also use the AWS CLI to request the quota increase:
Where `L-29A42BEB` is the quota code for "Accounts per organization".
134
+
135
+
<Note title="Terraform Alternative">
136
+
This quota increase can also be requested through our [account-quotas](/components/library/aws/account-quotas/) component, but it's generally faster to handle this manually or through the API since it's a one time request.
137
+
</Note>
63
138
</Step>
64
139
65
140
<Step>
66
141
## <StepNumber/> Deploy Accounts
67
142
68
-
<Notetitle="Important">
143
+
Again review the "account" configuration in `stacks/catalog/account.yaml`. In particular, check the email address and account names. In the next step, we will create and configure all accounts in the AWS Organization using the configuration in that stack file.
With the addition of support for dynamic Terraform roles, our `baseline` cold start refarch layer now depends
70
151
on/requires that we have `aws-teams` and `aws-team-roles` stacks configured. This is because `account-map` uses those
71
152
stacks to determine which IAM role to assume when performing Terraform in the account, and almost every other component
72
153
uses `account-map` (indirectly) to chose the role to assume. However, these components do _not_ need to be deployed yet.
73
154
</Note>
74
155
75
-
Again verify the "account" configuration in `stacks/catalog/account.yaml`. In the next step, we will create and configure all accounts in the AWS Organization using the configuration in that stack file.
│ │ local.account_map.full_account_map is map of string with 12 elements
79
+
│ │ local.root_account_name is "core-root"
80
+
│
81
+
│ The given key does not identify an element in this collection value.
82
+
╵
83
+
Releasing state lock. This may take a few moments...```
84
+
```
85
+
86
+
This error typically occurs when the `root_account_aws_name` is not correctly configured in the `account-map` component. The root account has two different names:
87
+
88
+
<Steps>
89
+
- **AWS Account Name**: The name you typed when originally creating the AWS account (often "root" but can be different)
90
+
- **Account Alias**: The deterministic name setin the account configuration (e.g., "core-root")
91
+
</Steps>
92
+
93
+
To fix this:
94
+
95
+
<Steps>
96
+
1. Find your root account name using AWS Organizations:
0 commit comments