更新时间:2025-09-25 GMT+08:00
分享

对IAM用户的权限进行安全审计

场景描述

企业级用户通常需要对云上IAM用户的权限定期进行安全审计,以确定IAM用户的权限未超出规定的范围。例如:除账号根用户和审计员用户以外的所有IAM用户都不应该具有任何IAM的管理权限。此安全审计往往是系统定期自动检查,所以需要使用API来完成。

本章节指导用户如何使用API调用的方式对IAM用户的权限进行安全审计,您可进一步通过编程手段完成定期安全审计工作。

总体思路

对IAM用户的权限进行安全审计,包含审计IAM用户自身附加的身份策略,以及IAM用户组附加的身份策略。对IAM用户自身附加的身份策略进行权限审计,只需要将待审计的权限与附加的身份策略内容进行对比即可。因此,接下来只以IAM用户组附加的身份策略权限审计为例进行详细说明,操作对步骤如下:

  1. 查询用户组列表;
  2. 查询用户组权限;
  3. 查询身份策略内容;
  4. 确定需要审计的权限,查询用户组中的IAM用户,进行安全审计。

涉及的接口如下:

步骤1:查询用户组列表

URI:GET /v5/groups

API文档详情请参见:查询用户组列表

  • 请求示例
    GET https://{endpoint}/v5/groups
  • 响应示例
    { 
      "groups" : [ { 
        "group_id" : "5b050baea9db472c88cbae67e8d6....", 
        "group_name" : "IAMGroupA", 
        "created_at" : "2023-09-11T10:13:25.414Z", 
        "urn" : "iam::d78cbac186b744899480f25bd022....:group:IAMGroupA", 
        "description" : "IAMdescription" 
      }, { 
        "group_id" : "07609e7eb200250a3f7dc003cb7a....", 
        "group_name" : "IAMGroupB", 
        "created_at" : "2023-09-11T10:13:40.016Z", 
        "urn" : "iam::d78cbac186b744899480f25bd022....:group:IAMGroupB", 
        "description" : "IAMdescription" 
      } ], 
      "page_info" : { 
        "current_count" : 2 
      } 
    }

步骤2:查询用户组权限

URI:GET /v5/groups/{group_id}/attached-policies

API文档详情请参见:查询指定用户组附加的所有身份策略

  • 请求示例
    GET https://{endpoint}/v5/groups/5b050baea9db472c88cbae67e8d6..../attached-policies
  • 响应示例
    { 
      "attached_policies" : [ { 
        "policy_name" : "ReadPolicy", 
        "policy_id" : "75cfe22af2b3498d82b655fbb39d....", 
        "urn" : "iam::d78cbac186b744899480f25bd022....:policy:ReadPolicy", 
        "attached_at" : "2023-09-25T09:31:44.935Z" 
      } ], 
      "page_info" : { 
        "current_count" : 1 
      } 
    }

步骤3:查询身份策略内容

URI:GET /v5/policies/{policy_id}/versions

API文档详情请参见:查询指定身份策略的所有版本

  • 请求示例
    GET https://{endpoint}/v5/policies/75cfe22af2b3498d82b655fbb39d..../versions
  • 响应示例
    { 
      "versions" : [ { 
        "document" : "{\"Version\":\"5.0\",\"Statement\":[{\"Effect\":\"Allow\",\"Action\":[\"iam:*:get*\",\"iam:*:list*\"]}]}", 
        "version_id" : "v1", 
        "is_default" : true, 
        "created_at" : "2023-09-25T09:03:24.786Z" 
      } ], 
      "page_info" : { 
        "current_count" : 1 
      } 
    }

步骤4:确定需要审计的权限,查询用户组中的IAM用户,进行安全审计

URI:GET /v5/users

API文档详情请参见:查询IAM用户列表

  • 请求示例
    GET https://{endpoint}/v5/users?group_id=5b050baea9db472c88cbae67e8d6....
  • 响应示例
    { 
      "users" : [ { 
        "description" : "description", 
        "user_name" : "IAMUserA", 
        "is_root_user" : false, 
        "created_at" : "2023-04-26T03:49:42Z", 
        "user_id" : "07609fb9358010e21f7bc003751c....", 
        "urn" : "iam::d78cbac186b744899480f25bd022....:user:IAMUserA", 
        "enabled" : true 
      }, { 
        "description" : "description", 
        "user_name" : "IAMUserB", 
        "is_root_user" : false, 
        "created_at" : "2023-04-26T03:52:27Z", 
        "user_id" : "076837351e80251c1f0fc003afe4....", 
        "urn" : "iam::d78cbac186b744899480f25bd022....:user:IAMUserB", 
        "enabled" : true 
      } ], 
      "page_info" : {  
        "current_count" : 2 
      } 
    }

相关文档