多用户访问控制

    策略管理接口

    创建策略

    创建权限策略,请参考如下代码:

    public CreatePolicyResponse createPolicy(IamClient client) {
        CreatePolicyRequest createPolicyRequest = new CreatePolicyRequest();
        // 设置策略名
        createPolicyRequest.setName("test_policy_name");
        // 设置策略描述
        createPolicyRequest.setDescription("test_policy_description");
        // 策略内容,ACL格式序列化后得到的String
        createPolicyRequest.setDocument("{\"accessControlList\": [{\"region\":\"bj\",\"service\":\"bcc\",\"resource\":[\"*\"]," +
                    "\"permission\":[\"*\"],\"effect\":\"Allow\"}]}");
                    
        client.createPolicy(createPolicyRequest);
    }

    查询策略

    查询权限策略,请参考如下代码:

    public void getPolicy(IamClient client) {
        // 策略名
        String policyName = "test_policy_name";
        // 要查询的策略类型,为System时查询系统策略;为Custom时查询自定义策略
        String policyType = "System";
        
        client.getPolicy(policyName, policyType);
    }

    删除策略

    删除权限策略,请参考如下代码:

    public void deletePolicy(IamClient client) {
        // 策略名
        String policyName = "test_policy_name";
        client.deletePolicy(policyName);
    }

    列举策略

    列举权限策略,当policyType为System时,可列举系统内置的策略列表,请参考如下代码:

    public void listPolicy(IamClient client) {
        // 要查询的策略类型,为System时查询系统策略;为Custom时查询自定义策略
        String policyType = "System";
        
        client.listPolicy(policyType);
    }

    关联用户权限

    为用户关联权限策略,请参考如下代码:

    public void attachPolicyToUser(IamClient client) {
        // 用户名
        String userName = "test_user_name";
        // 策略名
        String policyName = "test_policy_name";
        // 策略类型
        String policyType = "System";
        
        client.attachPolicyToUser(userName, policyName, policyType);
    }

    解除用户权限

    解除子用户关联的权限策略,请参考如下代码:

    public void detachPolicyFromUser(IamClient client) {
        // 用户名
        String userName = "test_user_name";
        // 策略名
        String policyName = "test_policy_name";
        // 策略类型
        String policyType = "System";
        
        client.detachPolicyFromUser(userName,policyName, policyType)
    }

    列举用户的权限

    列举用户关联的权限策略,请参考如下代码:

    public void listPoliciesForUser(IamClient client) {
        // 用户名
        String userName = "test_user_name";
        
        return client.listPoliciesForUser(userName)
    }

    关联组权限

    为用户组关联权限策略,请参考如下代码:

    public void attachPolicyToGroup(IamClient client) {
         // 组名
        String groupName = "test_group_name";
        // 策略名
        String policyName = "test_policy_name";
        // 策略类型
        String policyType = "System";
        
        client.attachPolicyToGroup(userName, policyName, policyType);
    }

    解除组权限

    解除用户组关联的权限策略,请参考如下代码:

    public void detachPolicyFromGroup(IamClient client) {
        // 组名
        String groupName = "test_group_name";
        // 策略名
        String policyName = "test_policy_name";
        // 策略类型
        String policyType = "System";
        
        client.detachPolicyFromGroup(groupName, policyName, policyType);
    }

    列举组关联的权限

    列举组关联的权限策略,请参考如下代码:

    public void listPoliciesForGroup(IamClient client) {
         // 组名
        String groupName = "test_group_name";
        
        client.listPoliciesForUser(groupName);
    }

    关联角色权限

    为角色关联权限策略,请参考如下代码:

    public void attachPolicyToRole(IamClient client) {
        // 角色名
        String roleName = "test_role_name";
        // 策略名
        String policyName = "test_policy_name";
        // 策略类型
        String policyType = "System";
        
        client.attachPolicyToRole(roleName, policyName, policyType);
    }

    解除角色权限

    解除角色关联的权限策略,请参考如下代码:

    public void detachPolicyFromRole(IamClient client) {
        // 角色名
        String roleName = "test_role_name";
        // 策略名
        String policyName = "test_policy_name";
        // 策略类型
        String policyType = "System";
        
        client.detachPolicyFromRole(roleName, policyName, policyType);
    }

    列举角色的权限

    列举角色关联的权限策略,请参考如下代码:

    public void listPoliciesForRole(IamClient client) {
        // 角色名
        String roleName = "test_role_name";
        client.listPoliciesForRole(roleName);
    }
    上一篇
    角色管理接口
    下一篇
    组管理接口