Auditoría de seguridad en permisos de usuarios de IAM
Caso
Los usuarios empresariales generalmente necesitan auditar periódicamente los permisos de los usuarios de IAM creados en la nube pública, asegurando que los usuarios de IAM solo tengan los permisos necesarios para completar ciertas tareas. En general, solo los administradores de cuentas y auditores tienen permisos de gestión para el servicio de IAM, y los usuarios de IAM no deben tener estos permisos. La auditoría de seguridad periódica se puede implementar automáticamente a través de APIs.
Esta sección describe cómo realizar auditorías de seguridad en los permisos de los usuarios de IAM llamando a las API. También puede implementar auditorías de seguridad periódicas mediante métodos programáticos.
Prerrequisitos
Para auditar los permisos de usuario de IAM como auditor, asegúrese de que se le ha asignado la política de ReadOnlyAccess de IAM (recomendado) o el role Security Administrator.
Procedimiento general
Para auditar los permisos de los usuarios de IAM, realice el procedimiento siguiente:
- Enumera todos los grupos de usuarios.
- Consulte los permisos de cada grupo de usuarios para el proyecto de servicio global.
- Consulte los permisos de cada grupo de usuarios para proyectos específicos de la región.
- Determine los permisos que se van a auditar y consulte a los usuarios de IAM en cada grupo de usuarios al que se le han asignado estos permisos.
En este ejemplo se usarán las siguientes API:
- Listado de grupos de usuarios
- Consulta de permisos de un grupo de usuarios para el proyecto de servicio global
- Consulta de permisos de un grupo de usuarios para un proyecto específico de región
- Consulta de los usuarios de IAM en un grupo
Paso 1: Listar todos los grupos de usuarios
URI: GET /v3/groups
Para obtener más información sobre la API, consulte Listado de grupos de usuarios.
- Ejemplo de la solicitud
GET https://iam.myhuaweicloud.com/v3/groups
- Ejemplo de la respuesta
{ "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" } }
Paso 2: Permisos de consulta de cada grupo de usuarios para el proyecto de servicio global
URI: GET /v3/domains/{domain_id}/groups/{group_id}/roles
Para obtener más información sobre la API, consulte Consulta de permisos de un grupo de usuarios para un proyecto de servicio global.
- Ejemplo de la solicitud
GET https://iam.myhuaweicloud.com/v3/domains/{domain_id}/groups/{group_id}/roles
- Ejemplo de la respuesta
{ "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" } ] }
Paso 3: Permisos de consulta de cada grupo de usuarios para proyectos específicos de la región
URI: GET /v3/projects/{project_id}/groups/{group_id}/roles
Para obtener más información sobre la API, consulte Consulta de permisos de un grupo de usuarios para un proyecto específico de región.
- Ejemplo de la solicitud
GET https://iam.myhuaweicloud.com/v3/projects/{project_id}/groups/{group_id}/roles
- Ejemplo de la respuesta
{ "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" } ] }
Paso 4: Determinar los permisos que se van a auditar y consultar a los usuarios de IAM que se conceden estos permisos
URI: GET /v3/groups/{group_id}/users
Para obtener más información sobre la API, consulte Consulta de los usuarios de IAM en un grupo.
- Ejemplo de la solicitud
GET https://iam.myhuaweicloud.com/v3/groups/{group_id}/users
- Ejemplo de la respuesta
{ "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 } ] }