Help Center/ Elastic IP/ User Guide/ Elastic IP User Guide/ Permissions Management/ Using IAM Roles or Policies to Grant Access to EIP
Updated on 2025-11-12 GMT+08:00

Using IAM Roles or Policies to Grant Access to EIP

The provided by Identity and Access Management (IAM) let you control access to EIP. With IAM, you can:
  • Create IAM users for personnel based on your enterprise's organizational structure. Each IAM user has their own identity credentials for accessing EIP resources.
  • Grant users only the permissions required to perform a given task based on their job responsibilities.
  • Entrust a HUAWEI ID or a cloud service to perform efficient O&M on your EIP resources.

If your HUAWEI ID meets your permissions requirements, you can skip this section.

Figure 1 shows the process of role/policy-based authorization.

Prerequisites

Before granting permissions to user groups, learn about for EIP. To grant permissions for other services, learn about all system-defined permissions supported by IAM.

Process Flow

Figure 1 Process for granting EIP permissions

  1. On the IAM console, create a user group and grant it permissions.

    Create a user group on the IAM console and assign the EIP ReadOnlyAccess permissions to the group.

  2. Create an IAM user and add it to the created user group.

    Create a user on the IAM console and add the user to the group created in 1.

  3. Log in as the IAM user and verify permissions.

    In the authorized region, perform the following operations:

    • Choose Service List > Elastic IP. Then click Buy EIP on the EIP console. If a message appears indicating that you have insufficient permissions to perform the operation, the EIP ReadOnlyAccess policy is in effect.
    • Choose another service from Service List. If a message appears indicating that you have insufficient permissions to access the service, the EIP ReadOnlyAccess policy is in effect.

Example Custom Policies

You can create custom policies to supplement the system-defined policies of EIP. For details about actions supported in custom policies, see Permissions Policies and Supported Actions.

To create a custom policy, choose either visual editor or JSON.
  • Visual editor: Select cloud services, actions, resources, and request conditions. This does not require knowledge of policy grammar.
  • JSON: Create a JSON policy or edit an existing one.

For details, see Creating a Custom Policy. The following lists examples of common EIP custom policies.

  • Example 1: Grant permission to assign and view EIPs.
    { 
        "Version": "1.1", 
        "Statement": [ 
            { 
                "Effect": "Allow", 
                "Action": [ 
                    "vpc:publicIps:create", 
                    "vpc:publicIps:list" 
                 ] 
            } 
        ] 
    }
  • Example 2: Grant permission to deny EIP deletion.

    A policy with only "Deny" permissions must be used together with other policies. If the permissions granted to an IAM user contain both "Allow" and "Deny", the "Deny" permissions take precedence over the "Allow" permissions.

    Assume that you want to grant the permissions of the EIP FullAccess policy to a user but want to prevent them from releasing EIPs. You can create a custom policy for denying EIP release, and attach both policies to the user. As an explicit deny in any policy overrides any allows, the user can perform all operations on EIPs except releasing them. Example policy denying EIP release:

    { 
          "Version": "1.1", 
          "Statement": [ 
                { 
    		  "Effect": "Deny", 
                      "Action": [ 
                            "vpc:publicIps:delete" 
                      ] 
                } 
          ] 
    }
  • Example 3: Create a custom policy containing multiple actions.

    A custom policy can contain the actions of one or multiple services that are of the same type (global or project-level). Example policy containing multiple actions:

    {
        "Version": "1.1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "vpc:publicIps:update",
                    "vpc:publicIps:create"
                ]
            },
            {
                "Effect": "Deny",
                "Action": [
                    "vpc:publicIps:delete"
                ]
            }
        ]
    }