AWS Organizations
Tags: devops, aws, cloud, security
Published: 2023-05-19 14:34:16

**Anotações sobre o AWS Organizations para ajudar na preparação das certificações AWS.**

Até o momento as anotações são para as certificações abaixo:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/se0sqtegn424nami6rz8.png)

- [Link oficial](https://aws.amazon.com/pt/organizations/)
- [FAQ](https://aws.amazon.com/pt/organizations/faqs/)

---
##**Definição do fornecedor**
_O AWS Organizations ajuda você a gerenciar e controlar seu ambiente de maneira centralizada à medida que os negócios e seus recursos da AWS expandem. 
Usando o AWS Organizations, você pode criar novas contas da AWS e alocar recursos, agrupar contas para organizar seus fluxos de trabalho, aplicar políticas a contas ou grupos para governança e simplificar o faturamento usando um único método de pagamento para todas as suas contas._


---

##**Anotações gerais**

- Global Service
- Para automatizar a criação de AWS Accounts
- Gerenciamento centralizado de todas as contas
- Agrupamento - OU
- Controle de serviços/API por conta
- Habilita CloudTrail em todas as contas para enviar os Log´s para um Bucket S3 central
- Envia todos os CloudWatch Logs para uma conta central
- Para remover uma conta, a conta AWS deve ser capaz de operar como uma conta autônoma. Só então ele pode ser removido das organizações AWS

---
##**Consolidated Billing**
[Documentação oficial](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html?icmpid=docs_orgs_console#feature-set-cb-only)

- Descontos
- Volume
- Reserved Instances
- Só recebe os descontos se as EC2 estiverem na mesma AZ
- Saving Plans
- Uma invoice

---
##**Service Control Polices (SCP)**
[Documentação oficial](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)

- Política da organização que você pode usar para gerenciar permissões em sua organização.
- Um SCP abrange todos os usuários, grupos e funções do IAM, incluindo o usuário raiz da conta da AWS.
- Whitelist e Black List
- Apply OU ou Account level
- Não é aplicado na conta Master
- Aplica em todos os usuários e roles, incluindo o root
- **Deve ter a permissão Explicito**

---
##**Organizational unit (OU)**
[Documentação oficial](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_ous.html)

---
##**Uma maneira mais fácil de controlar o acesso aos recursos da AWS usando a organização AWS dos principais IAM**
[Documentação oficial](https://aws.amazon.com/pt/blogs/security/control-access-to-aws-resources-by-using-the-aws-organization-of-iam-principals/)

Para alguns serviços, você concede permissões usando  resource-based policies para especificar as contas e principais que podem acessar o recurso e quais ações podem executar nele. 
- **aws:PrincipalOrgID** - nessas políticas para exigir que todos os principais que acessam o recurso sejam de uma conta (incluindo a conta mestra) na organização. 

**Exemplo**

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowGetObject",
            "Effect": "Allow",
            "Principal": {
				"AWS":[
						"arn:aws:iam::094697565664:user/Casey",
                        "arn:aws:iam::094697565664:user/David",
                        "arn:aws:iam::094697565664:user/Tom",
                        "arn:aws:iam::094697565664:user/Michael",
                        "arn:aws:iam::094697565664:user/Brenda",
                        "arn:aws:iam::094697565664:user/Lisa",
                        "arn:aws:iam::094697565664:user/Norman",
                        "arn:aws:iam::094697565646:user/Steve",
                        "arn:aws:iam::087695765465:user/Douglas",
                        "arn:aws:iam::087695765465:user/Michelle"
]
},
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::2018-Financial-Data/*",
**            "Condition": {"StringEquals": 
                             {"aws:PrincipalOrgID": [ "o-yyyyyyyyyy" ]}
                         }**
        }
    ]
}
```