Auditoria de segurança em permissões de usuários do IAM
Cenário
Os usuários corporativos geralmente precisam auditar periodicamente as permissões dos usuários do IAM criados na nuvem pública, garantindo que os usuários do IAM tenham apenas as permissões necessárias para concluir determinadas tarefas. Geralmente, apenas os administradores e auditores de conta têm permissões de administração para o serviço do IAM, e os usuários do IAM não devem ter essas permissões. A auditoria de segurança periódica pode ser implementada automaticamente por meio de APIs.
Esta seção descreve como realizar uma auditoria de segurança nas permissões dos usuários do IAM chamando APIs. Você também pode implementar auditorias de segurança periódicas usando métodos programáticos.
Pré-requisitos
Para auditar permissões de usuário do IAM como auditor, verifique se você recebeu a política de ReadOnlyAccess do IAM (recomendado) ou a função de Security Administrator.
Procedimento geral
Para auditar as permissões dos usuários do IAM, execute o seguinte procedimento:
- Liste todos os grupos de usuários.
- Consulte as permissões de cada grupo de usuários para o projeto de serviço global.
- Consulte as permissões de cada grupo de usuários para projetos específicos da região.
- Determine as permissões a serem auditadas e consulte os usuários do IAM em cada grupo de usuários que recebeu essas permissões.
As seguintes APIs serão usadas neste exemplo:
- Listagem de grupos de usuários
- Consulta de permissões de um grupo de usuários para o projeto de serviço global
- Consulta de permissões de um grupo de usuários para um projeto específico da região
- Consulta dos usuários do IAM em um grupo
Passo 1: Liste todos os grupos de usuários
URI: GET /v3/groups
Para obter detalhes sobre a API, consulte Listagem de grupos de usuários.
- Exemplo de solicitação
GET https://iam.myhuaweicloud.com/v3/groups
- Exemplo de resposta
{ "groups":[ { "create_time":1536293929624, "description":"IAMDescription", "domain_id":"d78cbac186b744899480f25bd022....", "id":"5b050baea9db472c88cbae67e8d6....", "links":{ "self":"https://iam.myhuaweicloud.com/v3/groups/5b050baea9db472c88cbae67e8d6...." }, "name":"IAMGroupA" }, { "create_time":1578107542861, "description":"IAMDescription", "domain_id":"d78cbac186b744899480f25bd022....", "id":"07609e7eb200250a3f7dc003cb7a....", "links":{ "self":"https://iam.myhuaweicloud.com/v3/groups/07609e7eb200250a3f7dc003cb7a...." }, "name":"IAMGroupB" } ], "links":{ "self":"https://iam.myhuaweicloud.com/v3/groups" } }
Passo 2: Consulte permissões de cada grupo de usuários para o projeto de serviço global
URI: GET /v3/domains/{domain_id}/groups/{group_id}/roles
Para obter detalhes sobre a API, consulte Consulta de permissões de um grupo de usuários para um projeto de serviço global.
- Exemplo de solicitação
GET https://iam.myhuaweicloud.com/v3/domains/{domain_id}/groups/{group_id}/roles
- Exemplo de resposta
{ "links":{ "self":"https://iam.myhuaweicloud.com/v3/domains/d78cbac186b744899480f25bd022f468/groups/077d71374b8025173f61c003ea0a11ac/roles" }, "roles":[ { "catalog":"CDN", "description":"Allow Query Domains", "description_cn":"Description of the permission in Chinese", "display_name":"CDN Domain Viewer", "flag":"fine_grained", "id":"db4259cce0ce47c9903dfdc195eb....", "links":{ "self":"https://iam.myhuaweicloud.com/v3/roles/db4259cce0ce47c9903dfdc195eb...." }, "name":"system_all_11", "policy":{ "Statement":[ { "Action":[ "cdn:configuration:queryDomains", "cdn:configuration:queryOriginServerInfo", "cdn:configuration:queryOriginConfInfo", "cdn:configuration:queryHttpsConf", "cdn:configuration:queryCacheRule", "cdn:configuration:queryReferConf", "cdn:configuration:queryChargeMode", "cdn:configuration:queryCacheHistoryTask", "cdn:configuration:queryIpAcl", "cdn:configuration:queryResponseHeaderList" ], "Effect":"Allow" } ], "Version":"1.1" }, "type":"AX" } ] }
Passo 3: Consulte de permissões de um grupo de usuários para um projeto específico da região
URI: GET /v3/projects/{project_id}/groups/{group_id}/roles
Para obter detalhes sobre a API, consulte Consulta de permissões de um grupo de usuários para um projeto da região específica.
- Exemplo de solicitação
GET https://iam.myhuaweicloud.com/v3/projects/{project_id}/groups/{group_id}/roles
- Exemplo de resposta
{ "links":{ "self":"https://iam.myhuaweicloud.com/v3/projects/065a7c66da0010992ff7c0031e5a..../groups/077d71374b8025173f61c003ea0a..../roles" }, "roles":[ { "catalog":"AOM", "description":"AOM read only", "description_cn":"Description of the permission in Chinese", "display_name":"AOM Viewer", "flag":"fine_grained", "id":"75cfe22af2b3498d82b655fbb39d....", "links":{ "self":"https://iam.myhuaweicloud.com/v3/roles/75cfe22af2b3498d82b655fbb39d...." }, "name":"system_all_30", "policy":{ "Statement":[ { "Action":[ "aom:*:list", "aom:*:get", "apm:*:list", "apm:*:get" ], "Effect":"Allow" } ], "Version":"1.1" }, "type":"XA" } ] }
Passo 4: Determine as permissões a serem auditadas e consultar os usuários do IAM que receberam essas permissões
URI: GET /v3/groups/{group_id}/users
Para obter detalhes sobre a API, consulte Consulta dos usuários do IAM em um grupo.
- Exemplo de solicitação
GET https://iam.myhuaweicloud.com/v3/groups/{group_id}/users
- Exemplo de resposta
{ "links":{ "self":"https://iam.myhuaweicloud.com/v3/groups/07609e7eb200250a3f7dc003cb7a..../users" }, "users":[ { "description":"--", "domain_id":"d78cbac186b744899480f25bd022....", "enabled":true, "id":"07609fb9358010e21f7bc003751c....", "last_project_id":"065a7c66da0010992ff7c0031e5a....", "links":{ "self":"https://iam.myhuaweicloud.com/v3/users/07609fb9358010e21f7bc003751c...." }, "name":"IAMUserA", "pwd_status":true }, { "description":"", "domain_id":"d78cbac186b744899480f25bd022....", "enabled":true, "id":"076837351e80251c1f0fc003afe4....", "last_project_id":"065a7c66da0010992ff7c0031e5a....", "links":{ "self":"https://iam.myhuaweicloud.com/v3/users/076837351e80251c1f0fc003afe4...." }, "name":"IAMUserB", "pwd_status":true } ] }