# IBM - Informações Básicas
{{#include ../../banners/hacktricks-training.md}}
## Hierarquia
Modelo de recursos do IBM Cloud ([dos docs](https://www.ibm.com/blog/announcement/introducing-ibm-cloud-enterprises/)):
Forma recomendada de dividir projetos:
## IAM
### Usuários
Os usuários têm um **email** atribuído a eles. Eles podem acessar a **console do IBM** e também **gerar chaves de API** para usar suas permissões programaticamente.\
**Permissões** podem ser concedidas **diretamente** ao usuário com uma política de acesso ou via um **grupo de acesso**.
### Perfis Confiáveis
Estes são **como os Papéis do AWS** ou contas de serviço do GCP. É possível **atribuí-los a instâncias de VM** e acessar suas **credenciais via metadados**, ou até mesmo **permitir que Provedores de Identidade** os utilizem para autenticar usuários de plataformas externas.\
**Permissões** podem ser concedidas **diretamente** ao perfil confiável com uma política de acesso ou via um **grupo de acesso**.
### IDs de Serviço
Esta é outra opção para permitir que aplicativos **interajam com o IBM Cloud** e realizem ações. Neste caso, em vez de atribuí-lo a uma VM ou Provedor de Identidade, uma **Chave de API pode ser usada** para interagir com o IBM de forma **programática**.\
**Permissões** podem ser concedidas **diretamente** ao id de serviço com uma política de acesso ou via um **grupo de acesso**.
### Provedores de Identidade
Provedores de **Identidade Externos** podem ser configurados para **acessar recursos do IBM Cloud** de plataformas externas acessando **Perfis Confiáveis**.
### Grupos de Acesso
No mesmo grupo de acesso **vários usuários, perfis confiáveis e ids de serviço** podem estar presentes. Cada principal no grupo de acesso irá **herdar as permissões do grupo de acesso**.\
**Permissões** podem ser concedidas **diretamente** ao perfil confiável com uma política de acesso.\
Um **grupo de acesso não pode ser membro** de outro grupo de acesso.
### Papéis
Um papel é um **conjunto de permissões granulares**. **Um papel** é dedicado a **um serviço**, significando que conterá apenas permissões desse serviço.\
**Cada serviço** de IAM já terá alguns **papéis possíveis** para escolher para **conceder acesso a um principal a esse serviço**: **Visualizador, Operador, Editor, Administrador** (embora possa haver mais).
As permissões de papel são concedidas via políticas de acesso a principais, então se você precisar dar, por exemplo, uma **combinação de permissões** de um serviço de **Visualizador** e **Administrador**, em vez de dar esses 2 (e sobrecarregar um principal), você pode **criar um novo papel** para o serviço e dar a esse novo papel as **permissões granulares que você precisa**.
### Políticas de Acesso
As políticas de acesso permitem **anexar 1 ou mais papéis de 1 serviço a 1 principal**.\
Ao criar a política, você precisa escolher:
- O **serviço** onde as permissões serão concedidas
- **Recursos afetados**
- Acesso ao Serviço & Plataforma **que será concedido**
- Estes indicam as **permissões** que serão dadas ao principal para realizar ações. Se algum **papel personalizado** for criado no serviço, você também poderá escolhê-lo aqui.
- **Condições** (se houver) para conceder as permissões
> [!NOTE]
> Para conceder acesso a vários serviços a um usuário, você pode gerar várias políticas de acesso
## Referências
- [https://www.ibm.com/cloud/blog/announcements/introducing-ibm-cloud-enterprises](https://www.ibm.com/cloud/blog/announcements/introducing-ibm-cloud-enterprises)
- [https://cloud.ibm.com/docs/account?topic=account-iamoverview](https://cloud.ibm.com/docs/account?topic=account-iamoverview)
{{#include ../../banners/hacktricks-training.md}}