Gerenciamento de acesso IAM para recursos de nuvem acessados pelas cadeias de ferramentas DevSecOps
IBM Cloud® Identity and Access Management (IAM) permite que os administradores atribuam funções específicas, como Visualizador, Editor, Operador e Administrador, a usuários e identidades de serviço. Isso define seus níveis de acesso a recursos como Continuous Delivery, Secrets Manager, Container Registry, Cloud Object Storage, bem como alvos de implantação, como clusters Kubernetes e Code Engine.
Em IBM Cloud DevSecOps pipelines, diferentes conjuntos de permissões de IAM são necessários com base na função do ator. Em linhas gerais, as funções nos pipelines do IBM Cloud DevSecOps podem ser categorizadas em dois tipos principais:
-
Administradores de pipeline Essas funções são responsáveis por gerenciar e configurar os pipelines, as cadeias de ferramentas e os recursos associados do DevSecOps. Um administrador de pipeline precisa de permissões amplas para configurar, gerenciar e solucionar problemas de pipelines, incluindo funções de editor ou administrador para recursos como Toolchain, Continuous Delivery, Container Registry e Secrets Manager. Isso permite que eles configurem pipelines, configurem integrações de cadeia de ferramentas, integrem serviços em nuvem e ferramentas de segurança.
-
Executores de pipeline Essas funções são responsáveis pela execução dos pipelines, cadeias de ferramentas e recursos associados do DevSecOps. Um Pipeline Runner, que executa pipelines, requer permissões limitadas voltadas para a execução de compilações, implantação de aplicativos e acesso aos recursos necessários. A função fornece permissões limitadas, como Operador, Escritor ou Leitor, permitindo que eles interajam com os serviços necessários (por exemplo, Kubernetes, Code Engine, Cloud Object Storage ) sem modificar as configurações críticas.
O acesso aos pipelines e recursos do DevSecOps pode ser concedido em duas abordagens principais.
- Acesso Abordagem baseada em grupos
- Abordagem baseada em ID de serviço
Ambos os métodos oferecem suporte ao gerenciamento seguro de acesso em IBM Cloud, com chaves API mapeadas para grupos de acesso, ideais para o gerenciamento centralizado de funções, enquanto as chaves API de ID de serviço oferecem uma maneira mais flexível e segura de autenticar fluxos de trabalho automatizados DevSecOps.
Acesso Abordagem baseada em grupos
Essa abordagem envolve a atribuição de usuários a grupos de acesso, que são serviços com funções e permissões predefinidas. Ao usar grupos de acesso, os administradores podem gerenciar centralmente as permissões, garantindo consistência e escalabilidade entre vários usuários. Esse método simplifica o gerenciamento de acesso, pois qualquer alteração em um grupo de acesso se aplica automaticamente a todos os usuários. As chaves de API criadas por usuários dentro do grupo de acesso herdam automaticamente as permissões atribuídas.
Aqui está uma tabela que descreve os diferentes conjuntos de permissões necessárias para a função de administrador do pipeline:
| Recurso / serviço | Permissões do IAM | Notas |
|---|---|---|
| IAM Identity Service | Criador da chave de API do usuário, criador da ID do serviço, operador | |
| Gerenciamento de usuários | Editor | |
| Serviço de grupos de acesso do IAM | Editor | |
| Grupo de recursos | Visualizador | |
| IBM Cloud Cadeia de ferramentas | Editor | |
| Continuous Delivery | Editor | |
| Secrets Manager | Gerenciador, Administrador | A função de administrador é necessária para criar uma nova instância do Secret Manager e criar uma autorização. A função de gerente é necessária para criar grupos secretos na instância do Secret Manager. |
| Cloud Object Storage | Escritor, editor | |
| Container Registry | Gerente | A função de gerente é necessária para criar um espaço de nome em Container Registry |
Aqui está uma tabela que descreve os diferentes conjuntos de permissões necessárias para a função do Pipeline Runner:
| Recurso / serviço | Permissões do IAM | Notas |
|---|---|---|
| Grupo de recursos | Visualizador | |
| IBM Cloud Cadeia de ferramentas | Operador de dutos, operador | A função de operador é necessária para lançar os subpipelines |
| Secrets Manager | Leitor | A função de leitor é necessária para visualizar os metadados dos segredos |
| Cloud Object Storage | Escritor de objetos, leitor | |
| Container Registry | Leitor, escritor | A função de gerente é necessária para criar um espaço de nome em Container Registry, caso ainda não exista |
Com base no destino da implantação, como IBM Cloud Kubernetes Service (IKS) ou IBM Cloud Code Engine, são necessárias diferentes permissões de IAM para os administradores de pipeline e os Pipeline Runners.
Aqui está uma tabela que descreve os diferentes conjuntos de permissões necessárias para a função de administrador do pipeline:
| Recurso / serviço | Permissões do IAM | Notas |
|---|---|---|
| IBM Kubernetes Service | Gerente, Editor | |
| Code Engine | Gerente, Editor |
Aqui está uma tabela que descreve os diferentes conjuntos de permissões necessárias para a função do Pipeline Runner:
| Recurso / serviço | Permissões do IAM | Notas |
|---|---|---|
| IBM Kubernetes Service | Escritor, operador | |
| Code Engine | Escritor, operador |
Abordagem baseada em ID de serviço
As IDs de serviço são identidades não humanas usadas para autenticar e autorizar processos automatizados, como os pipelines DevSecOps. As chaves da API de ID de serviço concedem permissões específicas a pipelines ou serviços sem vinculá-los a uma conta de usuário individual. Essa abordagem aumenta a segurança, garantindo que os pipelines operem apenas com as permissões necessárias, reduzindo o risco de acesso não autorizado e permitindo a integração perfeita com os serviços do site IBM Cloud.
Aqui está uma tabela que descreve os diferentes conjuntos de permissões necessárias para a função de administrador do pipeline:
| Recurso / serviço | Permissões do IAM | Notas |
|---|---|---|
| IAM Identity Service | Criador da chave de API do usuário, criador da ID do serviço, operador | |
| Gerenciamento de usuários | Editor | |
| Serviço de grupos de acesso do IAM | Editor | |
| Grupo de recursos | Administrador | |
| IBM Cloud Cadeia de ferramentas | Administrador | |
| Continuous Delivery | Editor | |
| Secrets Manager | Gerenciador, Administrador | A função de administrador é necessária para criar uma nova instância do Secret Manager e criar uma autorização. A função de gerente é necessária para criar grupos secretos na instância do Secret Manager. |
| Cloud Object Storage | Escritor, administrador | |
| Container Registry | Gerente | A função de gerente é necessária para criar um espaço de nome em Container Registry |
Aqui está uma tabela que descreve os diferentes conjuntos de permissões necessárias para a função do Pipeline Runner:
| Recurso / serviço | Permissões do IAM | Notas |
|---|---|---|
| Grupo de recursos | Visualizador | |
| IBM Cloud Cadeia de ferramentas | PipelineRunner, Operador | A função de operador é necessária para lançar os subpipelines |
| Secrets Manager | Leitor | A função de leitor é necessária para visualizar os metadados dos segredos |
| Cloud Object Storage | Escritor de objetos, leitor | |
| Container Registry | Leitor, escritor | A função de gerente é necessária para criar um espaço de nome em Container Registry, caso ainda não exista |
Aqui está uma tabela que descreve as diferentes permissões de IAM necessárias para administradores de pipeline e Pipeline Runners, com base no destino da implantação como IBM Cloud Kubernetes Service (IKS) ou IBM Cloud Code Engine:
Aqui está uma tabela que descreve os diferentes conjuntos de permissões necessárias para a função de administrador do pipeline:
| Recurso / serviço | Permissões do IAM | Notas |
|---|---|---|
| IBM Kubernetes Service | Gerenciador, Administrador | |
| Code Engine | Gerenciador, Administrador |
Aqui está uma tabela que descreve os diferentes conjuntos de permissões necessárias para a função do Pipeline Runner:
| Recurso / serviço | Permissões do IAM | Notas |
|---|---|---|
| IBM Kubernetes Service | Escritor, operador | |
| Code Engine | Escritor, operador |