策略管理接口
更新时间:2020-07-13
创建策略
创建权限策略,请参考如下代码:
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);
}