Using IAM Identity Policies to Grant Access to TaurusDB
System-defined permissions in Identity Policy-based Authorization provided by Identity and Access Management (IAM) let you control access to TaurusDB. With IAM, you can:
- Create IAM users or user groups for personnel based on your enterprise's organizational structure. Each IAM user has their own identity credentials for accessing TaurusDB resources.
- Grant users only the permissions required to perform a given task based on their job responsibilities.
- Entrust a Huawei Cloud account or a cloud service to perform efficient O&M on your TaurusDB resources.
If your Huawei Cloud account meets your permissions requirements, you can skip this section.
Figure 1 shows the process flow of identity policy-based authorization.
Prerequisites
Before granting permissions, learn about system-defined identity policies in Identity Policy-based Authorization for TaurusDB. To grant permissions for other services, learn about all system-defined permissions supported by IAM.
Process Flow
- On the IAM console, create an IAM user or create a user group.
- Attach a system-defined identity policy (TaurusDBReadOnlyAccessPolicy as an example) to the user or user group.
Assign the permissions defined in the system-defined identity policy TaurusDBReadOnlyAccessPolicy to the user or group, or attach the system-defined identity policy to it.
- Log in as the IAM user and verify permissions.
In the authorized region, perform the following operations:
- Choose Service List > Databases > TaurusDB. Then click Buy DB Instance on the TaurusDB console. If a message appears indicating that you have insufficient permissions to perform the operation, the TaurusDBReadOnlyAccessPolicy policy is in effect.
- Choose another service from the service list. If a message appears indicating that you have insufficient permissions to access the service, the TaurusDBReadOnlyAccessPolicy policy is in effect.
Example Custom Identity Policies
You can create custom identity policies to supplement the system-defined identity policies of TaurusDB. For details about actions supported in custom identity policies, see Actions Supported by Identity Policy-based Authorization.
To create a custom identity 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 Identity Policy and Attaching It to a Principal.
When creating a custom Identity policy, use the Resource element to specify the resources the identity policy applies to and use the Condition element (service-specific condition keys) to control when the identity policy is in effect. For details about the supported resource types and condition keys, see Actions Supported by Identity Policy-based Authorization. The following lists examples of common TaurusDB custom identity policies.
- Example 1: Grant permission to create a TaurusDB instance (without specifying the CPU architecture)
{ "Version": "5.0", "Statement": [ { "Effect": "Allow", "Action": [ "gaussdbformysql:instance:create" ] } ] } - Example 2: Grant permission to create only an Arm-based TaurusDB instance
A custom identity policy can contain condition keys. Example policy allowing only Arm-based TaurusDB instance creation:
{ "Version": "5.0", "Statement": [ { "Effect": "Allow", "Action": [ "gaussdbformysql:instance:create" ], "Condition": { "StringEqualsIgnoreCase": { "gaussdbformysql:FlavorType": [ "ARM" ] } } } ] }
- Example 3: Grant permission to deny TaurusDB instance 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 TaurusDB FullAccess policy to a user but want to prevent them from deleting TaurusDB instances. You can create a custom policy for denying TaurusDB instance deletion, and attach this policy together with the TaurusDB FullAccess policy to the user. As an explicit deny in any policy overrides any allows, the user can perform all operations on TaurusDB instances excepting deleting them. Example policy denying instance deletion:
{ "Version": "5.0", "Statement": [ { "Effect": "Deny" "Action": [ "gaussdbformysql:instance:delete" ], } ] } - Example 4: 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": "5.0", "Statement": [ { "Action": [ "gaussdbformysql:instance:create", "gaussdbformysql:instance:modify", "gaussdbformysql:instance:delete", "vpc:publicIps:list", "vpc:publicIps:update" ], "Effect": "Allow" } ] }
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot
