This chapter describes fine-grained permissions management for your IMS. If your HUAWEI CLOUD account does not need individual IAM users, then you may skip over this chapter.
A policy is a set of permissions defined in JSON format. By default, new IAM users do not have any permissions assigned. You need to add a user to one or more groups, and assign permissions policies to these groups. The user then inherits permissions from the groups it is a member of. This process is called authorization. After authorization, the user can perform specified operations on BMS based on the permissions. For more information about policy syntax and for example policies, see Permissions Management in Image Management Service User Guide.
There are fine-grained policies and role-based access control (RBAC) policies. An RBAC policy consists of permissions for an entire service. Users in a group with such a policy assigned are granted specified permissions required for that service. A fine-grained policy consists of API-based permissions for operations on specific resource types. Fine-grained policies, as the name suggests, allow for more fine-grained control than RBAC policies.
- Fine-grained policies are currently available for open beta testing. You can apply to use the fine-grained access control function free of charge. For more information, see Applying for Fine-Grained Access Control.
- If you want to allow or deny the access to an API, fine-grained authorization is a good choice.
A HUAWEI CLOUD account has all of the permissions required to call all APIs, but IAM users must have the required permissions specifically assigned. The permissions required for calling an API are determined by the actions supported by the API. Only users that have been granted permissions allowing the actions can call the API successfully. For example, if an IAM user queries ECSs using an API, the user must have been granted permissions that allow the ecs:servers:list action.
Operations supported by a fine-grained policy are specific to APIs. The following describes the headers of the action tables provided in this chapter:
- Permissions: Defined by actions in a custom policy.
- Actions: Added to a custom policy to control permissions for specific operations.
- Authorization Scope: A custom policy can be applied to IAM projects or enterprise projects or both. Policies that contain actions supporting both IAM and enterprise projects can be assigned to user groups and take effect in both IAM and Enterprise Management. Policies that only contain actions supporting IAM projects can be assigned to user groups and only take effect for IAM. Such policies will not take effect if they are assigned to user groups in Enterprise Project. For details about the differences between IAM and enterprise projects, see Differences Between IAM Projects and Enterprise Projects.
- APIs: REST APIs that can be called in a custom policy.
IMS supports the following actions that can be defined in custom policies:
- Image Management, including actions supported by IMS's image management APIs, such as the APIs for querying images, updating image information, creating images, registering images, and exporting images.
- Image Tagging, including actions supported by IMS's tag management APIs, such as the APIs for adding tags, deleting tags, and querying images.
- Image Schema, including actions supported by IMS's image schema management APIs, such as the APIs for querying an image schema, querying an image list schema, querying an image member schema, and query an image member list schema.
- Image Sharing, including actions supported by IMS's shared image APIs, such as the APIs for adding an image member, updating the status of image members, querying image member details, and deleting an image member.
- Image Replication, including actions supported by IMS's image replication APIs, such as the API for replicating an image within a region.
- Image Quota, including actions supported by IMS's image quota APIs, such as the API for querying image quotas.
Error messages returned for native OpenStack APIs are in XML format. JSON format of the fine-grained policy is not supported.