GeminiDB Permission Management
If you need to assign different permissions to personnel in your enterprise to access your GeminiDB resources, Identity and Access Management (IAM) is a good choice for fine-grained permissions management. IAM provides identity authentication, permissions management, and access control, helping you to securely access your Huawei Cloud resources. If your Huawei Cloud account does not require IAM for permissions management, you can skip this section.
IAM is a free service. You only pay for the resources in your account.
With IAM, you can control access to specific Huawei Cloud resources. For example, if you want some software developers in your enterprise to use GeminiDB resources but do not want them to delete GeminiDB instances or perform any other high-risk operations, you can grant permission to use GeminiDB instances but not permission to delete them.
IAM supports role/policy-based authorization and identity policy-based authorization.
The following table describes the differences between these two authorization models.
|
Authorization Model |
Core Relationship |
Permissions |
Authorization Method |
Scenario |
|---|---|---|---|---|
|
Role/Policy |
User-permission-authorization scope |
|
Assigning roles or policies to principals |
To authorize a user, you need to add it to a user group first and then specify the scope of authorization. It provides a limited number of condition keys and cannot meet the requirements of fine-grained permissions control. This method is suitable for small- and medium-sized enterprises. |
|
Identity policy |
User-policy |
|
|
You can authorize a user by attaching an identity policy to it. User-specific authorization and a variety of key conditions allow for more fine-grained permissions control. However, this model can be hard to set up. It requires a certain amount of expertise and is suitable for medium- and large-sized enterprises. |
Assume that you want to grant IAM users the permissions needed to create GeminiDB instances in CN North-Beijing4 and OBS buckets in CN South-Guangzhou. With role- and policy-based authorization, the administrator needs to create two custom policies and attach both to the IAM users. With identity policy-based authorization, the administrator only needs to create one custom policy, configure the condition key g:RequestedRegion for the policy, and then attach the policy to the users or grant the users the access permissions to the specified regions. Identity policy-based authorization is more flexible than role/policy-based authorization.
Policies and actions in the two authorization models are not interoperable. You are advised to use the identity policy-based authorization model. For details about system-defined permissions, see Role/Policy-based Authorization and Identity Policy-based Authorization.
For more information about IAM, see IAM Service Overview.
Role/Policy-based Authorization
GeminiDB supports role/policy-based authorization. New IAM users do not have any permissions assigned by default. You need to first add them to one or more groups and then attach policies or roles to these groups. The users then inherit permissions from the groups and can perform specified operations on cloud services based on the permissions they have been assigned.
GeminiDB is a project-level service and is available in specific physical regions. When you set Scope to Region-specific projects and select the specified projects (for example, ap-southeast-2) in the specified regions (for example, AP-Bangkok), the users only have permissions for GaussDB instances in the selected projects. If you set Scope to All resources, the users have permissions for GaussDB instances in all region-specific projects. When accessing GeminiDB, you need to switch to the authorized region.
Table 2 lists all system-defined permissions for GeminiDB. System-defined policies in role/policy-based authorization are not interoperable with those in identity policy-based authorization.
|
Policy Name/System Role |
Description |
Type |
Dependency |
|---|---|---|---|
|
GeminiDB FullAccess |
All permissions of GeminiDB |
System-defined policy |
To create a yearly/monthly instance, you need to configure the following CBC actions:
To unsubscribe from a yearly/monthly instance, you need to configure the following CBC action:
To use storage autoscaling, configure the following actions for IAM users:
GeminiDB FullAccess already contains the iam:agencies:listAgencies, iam:roles:listRoles, and iam:agencies:pass permissions. GeminiDB is a region-level service, and IAM is a global service. If you want to grant GeminiDB FullAccess to a project, grant BSS ServiceAgencyReadPolicy (global service) to it as well. Granting GeminiDB FullAccess to all projects eliminates the need for additional configuration when using IAM actions. BSS ServiceAgencyCreatePolicy contains the following permissions:
|
|
GeminiDB ReadOnlyAccess |
Read-only permissions of GeminiDB |
System-defined policy |
None |
|
GeminiDBServerlessFullAccessPolicy |
All permissions of GeminiDB Serverless |
System-defined policy |
None |
Table 3 lists the common operations supported by system-defined permissions for GeminiDB.
|
Operation |
GeminiDB FullAccess |
GeminiDB ReadOnlyAccess |
|---|---|---|
|
Creating an instance |
Supported |
Not supported |
|
Querying the instance list |
Supported |
Supported |
|
Querying instance details |
Supported |
Supported |
|
Querying tasks |
Supported |
Supported |
|
Deleting an instance |
Supported |
Not supported |
|
Restarting an instance |
Supported |
Not supported |
|
Resetting a password |
Supported |
Not supported |
|
Changing a security group |
Supported |
Not supported |
|
Changing a database port |
Supported |
Not supported |
|
Binding and unbinding an EIP |
Supported |
Not supported |
|
Scaling up storage |
Supported |
Not supported |
|
Changing instance specifications |
Supported |
Not supported |
|
Adding nodes |
Supported |
Not supported |
|
Deleting nodes |
Supported |
Not supported |
|
Modifying a backup policy |
Supported |
Not supported |
|
Renaming an instance |
Supported |
Not supported |
|
Creating a manual backup |
Supported |
Not supported |
|
Querying the backup list |
Supported |
Supported |
|
Restoring data to a new instance |
Supported |
Not supported |
|
Deleting a backup |
Supported |
Not supported |
|
Creating a parameter template |
Supported |
Not supported |
|
Querying the parameter template list |
Supported |
Supported |
|
Modifying a parameter template |
Supported |
Not supported |
|
Deleting a parameter template |
Supported |
Not supported |
|
Querying enterprise project quotas |
Supported |
Supported |
|
Modifying enterprise project quotas |
Supported |
Not supported |
|
Enabling or disabling SSL |
Supported |
Not supported |
|
Stopping a backup |
Supported |
Not supported |
Table 4 lists common operations and actions of GeminiDB. You can create permission policies based on the table.
|
Operation |
Action |
Authorization Scope |
Remarks |
|---|---|---|---|
|
Instance creation page |
|
Supported:
|
The VPC, subnet, and security group are displayed on the instance creation page. |
|
Creating an instance |
|
Supported:
|
If the default VPC, subnet, and security group are used, the vpc:*:create permission must be configured. To create an encrypted instance, you need to configure the KMS Administrator permission for the project. |
|
Querying the instance list |
nosql:instance:list |
Supported:
|
- |
|
Querying instance details |
nosql:instance:list |
Supported:
|
If the VPC, subnet, and security group need to be displayed on the instance details page, add the vpc:*:get and vpc:*:list actions. |
|
Querying tasks |
nosql:task:list |
Supported:
|
- |
|
Deleting an instance |
nosql:instance:delete |
Supported:
|
You need to delete the data node IP address. |
|
Restarting an instance |
nosql:instance:restart |
Supported:
|
- |
|
Resetting a password |
nosql:instance:modifyPasswd |
Supported:
|
- |
|
Changing a security group |
nosql:instance:modifySecurityGroup |
Supported:
|
- |
|
Changing a database port |
nosql:instance:modifyPort |
Supported:
|
- |
|
Binding an EIP |
nosql:instance:bindPublicIp |
Supported:
|
When binding an EIP, you need to query created EIPs.
For details, see Floating IP Address. |
|
Unbinding an EIP |
nosql:instance:unbindPublicIp |
Supported:
|
For details, see . |
|
Scaling up storage |
nosql:instance:modifyStorageSize |
Supported:
|
- |
|
Changing instance specifications |
nosql:instance:modifySpecification |
Supported:
|
- |
|
Adding nodes |
|
Supported:
|
- |
|
Deleting nodes |
nosql:instance:reduceNode |
Supported:
|
Deleting nodes from a cluster |
|
Modifying a backup policy |
nosql:instance:modifyBackupPolicy |
Supported:
|
- |
|
Renaming an instance |
nosql:instance:rename |
Supported:
|
- |
|
Creating a manual backup |
nosql:backup:create |
Supported:
|
- |
|
Querying the backup list |
nosql:backup:list |
Supported:
|
- |
|
Downloading a backup file |
nosql:backup:download |
Supported:
|
- |
|
Restoring data to a new instance |
|
Supported:
|
The KMS Administrator permission needs to be configured for an encrypted instance in a project. |
|
Restoring data to an existing instance |
nosql:backup:restoreToExistInstance |
Supported:
|
- |
|
Deleting a backup |
nosql:backup:delete |
Supported:
|
- |
|
Creating a parameter template |
nosql:param:create |
Supported:
|
- |
|
Querying the parameter template list |
nosql:param:list |
Supported:
|
- |
|
Changing parameter values in a parameter template |
nosql:param:modify |
Supported:
|
- |
|
Changing parameter settings of an instance node |
nosql:instance:modifyParameter |
Supported:
|
- |
|
Deleting a parameter template |
nosql:param:delete |
Supported:
|
- |
|
Performing an operation on tags |
|
Supported:
|
- |
|
Viewing the tag list |
|
Supported:
|
- |
|
Querying enterprise project quotas |
nosql:quota:list |
Supported:
|
- |
|
Modifying enterprise project quotas |
nosql:quota:modify |
Supported:
|
- |
|
Enabling or disabling audit logs |
nosql:instance:switchAuditLog |
Supported:
|
- |
|
Downloading audit logs |
nosql:instance:downloadAuditLog |
Supported:
|
- |
|
Deleting audit logs |
nosql:instance:deleteAuditLog |
Supported:
|
- |
|
Enabling or disabling the display of slow query logs in plaintext |
nosql:instance:modifySlowLogPlaintextSwitch |
Supported:
|
- |
|
Enabling or disabling SSL |
nosql:instance:switchSSL |
Supported:
|
- |
|
Changing a private IP address |
nosql:instance:modifyPrivateIp |
Supported:
|
- |
|
Switching between primary and standby instances |
nosql:instance:switchover |
Supported:
|
- |
|
Patching a database |
nosql:instance:upgradeDatabaseVersion |
Supported:
|
- |
|
Stopping a backup |
nosql:backup:stop |
Supported:
|
- |
|
Querying a log group |
lts:groups:get |
Supported:
|
- |
|
Querying log streams |
lts:topics:get |
Supported:
|
- |
Identity Policy-based Authorization
GeminiDB supports identity policy-based authorization. Table 5 lists all the system-defined identity policies for GeminiDB. System-defined policies in identity policy-based authorization are not interoperable with those in role/policy-based authorization.
|
Identity Policy Name |
Description |
Type |
|---|---|---|
|
GeminiDBFullAccessPolicy |
All permissions for GeminiDB |
System-defined identity policies |
|
GeminiDBReadOnlyPolicy |
Read-only permissions for GeminiDB |
System-defined identity policies |
Table 6 lists the common operations supported by system-defined policies for GeminiDB.
|
Operation |
GeminiDBFullAccessPolicy |
GeminiDBReadOnlyPolicy |
|---|---|---|
|
Creating an instance |
Supported |
Not supported |
|
Querying the instance list |
Supported |
Not supported |
|
Querying instance details |
Supported |
Supported |
|
Querying tasks |
Supported |
Supported |
|
Deleting an instance |
Supported |
Not supported |
|
Restarting an instance |
Supported |
Not supported |
|
Resetting a password |
Supported |
Not supported |
|
Changing a security group |
Supported |
Not supported |
|
Changing a database port |
Supported |
Not supported |
|
Binding and unbinding an EIP |
Supported |
Not supported |
|
Scaling up storage |
Supported |
Not supported |
|
Changing instance specifications |
Supported |
Not supported |
|
Adding nodes |
Supported |
Not supported |
|
Deleting nodes |
Supported |
Not supported |
|
Modifying a backup policy |
Supported |
Not supported |
|
Renaming an instance |
Supported |
Not supported |
|
Creating a manual backup |
Supported |
Not supported |
|
Querying the backup list |
Supported |
Supported |
|
Restoring data to a new instance |
Supported |
Not supported |
|
Deleting a backup |
Supported |
Not supported |
|
Creating a parameter template |
Supported |
Not supported |
|
Querying the parameter template list |
Supported |
Supported |
|
Modifying a parameter template |
Supported |
Not supported |
|
Deleting a parameter template |
Supported |
Not supported |
|
Querying enterprise project quotas |
Supported |
Supported |
|
Modifying enterprise project quotas |
Supported |
Not supported |
|
Enabling or disabling SSL |
Supported |
Not supported |
|
Stopping a backup |
Supported |
x |
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