001: Primeiro pipeline da Main Account
A Main Account é a raiz da AWS Organization do ARGLabs, e é intencionalmente mínima: não roda nenhuma carga de trabalho. Ela guarda apenas o que precisa ficar no topo da árvore: a estrutura da organização, o provedor de identidade de todos que entram na AWS, o domínio principal da empresa, e a auditoria e a busca que cobrem todas as contas. A única outra coisa nela é este site, publicado pelo seu próprio repositório.
O que ela provisiona
- AWS Organizations: a própria organização (importada) com acesso confiável para os serviços abaixo, uma OU
Teamspara as contas dos times e uma OUSharedpara contas compartilhadas, como a da rede. - IAM Identity Center (SSO): o grupo
CloudAdministrators, os permission setsAdministratorAccesseReadOnlyAccess, a atribuição que torna o grupo administrador da Main Account, e a participação no grupo dos usuários administradores configurados. - Route 53: a hosted zone
arglabs.orge o domínio registrado, apontado para os name servers dessa zona. - AWS RAM: compartilhamento de recursos com toda a organização, do qual a rede compartilhada depende.
- Auditoria e busca: a trilha CloudTrail da organização, que registra os eventos de gerenciamento de todas as contas e regiões em um bucket que as contas membro não alcançam, um workgroup e uma tabela do Athena para consultá-la com SQL, e uma visão do Resource Explorer que busca em todas as contas.
- Custos: as tags de alocação de custo
app_nameeenv, ativadas para toda a organização.
Como é feito o deploy
Tudo roda pelo Bitbucket Pipelines. O pipeline assume a role bitbucket-openid via OIDC (provisionada pelo projeto de pré-requisitos), que então assume a role deployer para alterar a AWS. Nenhuma credencial de longa duração em lugar nenhum.
Todo push executa terraform plan e então espera uma aprovação manual antes do terraform apply. Os dois rodam no workspace default do Terraform: a organização, o Identity Center e o domínio apex existem uma vez, não uma vez por ambiente.
Repositório: bitbucket.org/arglabs/arglabs-mainaccount-orgstuff