Onboard Your Organization¶
From registration form to governed cloud accounts. This is the RosettaOps path.
This is one of two ways to be onboarded
This page is the organization path: RosettaOps, many accounts, many people, and governance over both.
If you are one person bringing a cloud account you already own, you want RosettaCloud instead, and the shorter Sign Up as an Individual path -- one template, a free tier, and no organization to create.
For bringing individual people into an organization that already exists -- self-registration, manager-created users, SSO auto-provisioning -- see User Onboarding.
For the same registration done through the console with screenshots, see the Register Your Organization tutorial.
The Flow¶
flowchart TD
Reg["1. Submit the registration form"] --> Email["2. Sign in<br/><i>the console shows your setup keys</i>"]
Email --> Deploy["3. Run the deployment runbook<br/>for your estate"]
Deploy --> Done["Cloud accounts registered<br/>and governed"]
style Reg fill:#e3f2fd,stroke:#1565c0,color:#000
style Email fill:#fff9c4,stroke:#f9a825,color:#000
style Deploy fill:#e8f5e9,stroke:#2e7d32,color:#000
style Done fill:#e8f5e9,stroke:#2e7d32,color:#000
Step 1 -- Register the Organization¶
Submit the institution registration form:
https://www.rosettahub.com/registration/institution.xhtml
This creates your organization on the platform and the first user account, which becomes the owner of everything that follows.
Step 2 -- Sign In and Collect Your Setup Keys¶
RosettaHub emails you your console credentials. Everything the deployment needs is shown in the console the first time you sign in, not emailed.
Sign in. Because your organization has no cloud account yet, a setup keys panel opens automatically, with a Copy button beside every field:
| What | Used for |
|---|---|
| User Uid | A CloudFormation parameter. Identifies the platform user the organization attaches to, and doubles as the sts:ExternalId on the control role's trust policy |
| Setup Api Key | A CloudFormation parameter. Authorises the registration call each template makes back to the platform |
| Subscription | A picker for Observe, Govern or Automate. The command below changes to match |
| Setup command | One aws cloudformation create-stack command, ready to run, with your values and your edition's flags already filled in |
The panel gives you the simplest deployment: one command, on the account you are signed in from, with that account taking on every role. Automate additionally creates the FinOps, audit and log-archive accounts for you, because leaving their ids empty is the instruction to create them.
That is enough to be up and running. Two situations need more than one command, and both are covered by the runbooks in Step 3:
- A landing zone with separate FinOps, audit and log-archive accounts. Each family has a functional template for those, deployed before the management one.
- Bringing cloud accounts you already have. Those need the member template as a stack set.
The region in the command
It is where the setup stack and its Lambda are created, and it must be one of us-east-1, us-west-2, eu-west-1 or ap-southeast-1, because that is where the function's code bucket exists. It does not limit where you can then run anything.
Save the keys before you close the panel
The panel opens for users who have neither a cloud account nor a key set, so it stops appearing once Step 3 has registered your first account, and it does not come back.
Keep the Setup Api Key somewhere durable: you need it again for every further account you register, whether that is a member stack set or another stack later on. Your User Uid is not at risk, because it stays available on the dashboard.
Keep the setup key safe
It is a platform credential, not an AWS one. It authorises registering cloud accounts against your organization. Templates declare it as NoEcho, so it stays out of CloudFormation console output and stack events, but anyone who can read a deployed stack's Lambda configuration in an account can retrieve it. Treat it accordingly, and rotate it through the console if you suspect exposure.
Step 3 -- Deploy¶
Two questions decide this. The first picks your runbook, the second picks your template and flags.
Which runbook: who owns the accounts?¶
-
RosettaHub creates them
One command. Leave the functional account IDs empty and RosettaHub creates the FinOps, audit and log-archive accounts, then vends member accounts as users need them.
Automate only -- creating accounts needs the Lifecycle grant.
-
You bring existing accounts, roles on the payer
Two commands. One stack on the payer, one StackSet across the accounts you already have.
Any edition.
-
You bring existing accounts, separate functional accounts
Four phases, in order. The control role deploys first so the functional templates can trust it.
Any edition.
The member StackSet is for accounts you already have
Accounts RosettaHub creates are set up at creation and need no StackSet. You deploy the member template only over accounts you are bringing across. Estates with both do both.
Which template: which edition did you buy?¶
| Edition | Template family | Flags |
|---|---|---|
| Observe | RosettaOpsGovernance* |
EnablePermissions=false |
| Govern | RosettaOpsGovernance* |
EnablePermissions=true |
| Automate | RosettaOpsAdmin* |
EnableDestroy, EnableFederation, EnableRosettaCloud, EnableLifecycle. EnablePermissions is not a parameter here -- it is always on |
Each runbook repeats this table and shows the commands for one family, so you never have to hold the mapping in your head while deploying.
Prerequisite for both
Member accounts are deployed by StackSet under service-managed permissions, which requires AWS Organizations with all features enabled. Consolidated billing alone will not do. You create no roles for StackSets yourself; CloudFormation provisions what it needs through Organizations trusted access. Ask us if your security review needs the detail of what that puts in your accounts.
What You Are Deploying¶
Which templates apply depends on the edition you bought. All are published as plain CloudFormation YAML at a public path, need no credentials to fetch, and can be read in full before you deploy anything.
BASE=https://com-rosettahub-public-code.s3.eu-west-1.amazonaws.com/cloudformation/2.0.0
curl -O $BASE/RosettaOpsGovernance.yaml
| Edition | Family | Templates | Key parameter |
|---|---|---|---|
| Observe | Governance | RosettaOpsGovernance* |
EnablePermissions=false |
| Govern | Governance | RosettaOpsGovernance* |
EnablePermissions=true |
| Automate | Admin | RosettaOpsAdmin* |
EnableDestroy, EnableFederation, EnableRosettaCloud, EnableLifecycle |
Observe and Govern are the same file
Moving from Observe to Govern is a parameter change on a stack you have already deployed. Moving to Automate means deploying a different family, deliberately -- because that is where RosettaHub first gains an administrative path to an account. See Account Access and Scopes.
Within a family, which template goes to an account depends on what that account is:
| Template | Deploy to | When |
|---|---|---|
...Management |
Your management (payer) account | Always |
| (base name) | Every ordinary member account | Always |
...Functional |
FinOps, audit or log-archive accounts | Only if those are separate accounts |
RosettaOpsControlRole |
Your management (payer) account | Only alongside the above |
RosettaOpsOrgAccessRoleTrust |
Member accounts | Optional, and last |
Most organizations deploy the first two.
After Onboarding¶
- Cloud Accounts -- managing the accounts you have just registered.
- Organizations -- building your hierarchy and assigning managers.
- User Onboarding -- bringing people into the organization.
- Account Access and Scopes -- changing what RosettaHub may do on an account.