Help Center/ GeminiDB/ Service Overview/ GeminiDB Permission Management
Updated on 2025-12-11 GMT+08:00

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.

Table 1 Differences between two authorization models

Authorization Model

Core Relationship

Permissions

Authorization Method

Scenario

Role/Policy

User-permission-authorization scope

  • System-defined roles
  • System-defined policies
  • Custom policies

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

  • System-defined identity policies
  • Custom identity policies
  • Assigning identity policies to principals
  • Attaching identity policies to principals

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.

Table 2 System-defined permissions for GeminiDB

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:

  • bss:balance:view
  • bss:balance:update
  • bss:order:view
  • bss:order:pay
  • bss:order:update
  • bss:renewal:view
  • bss:renewal:update

To unsubscribe from a yearly/monthly instance, you need to configure the following CBC action:

  • bss:unsubscribe:update

To use storage autoscaling, configure the following actions for IAM users:

  • Creating a custom policy:
    • iam:agencies:listAgencies
    • iam:agencies:createAgency
    • iam:permissions:listRolesForAgencyOnProject
    • iam:permissions:grantRoleToGroupOnProject
    • iam:roles:listRoles
    • iam:roles:createRole
  • Adding system role Security Administrator:
    1. Select a user group to which the user belongs.
    2. Click Authorize in the Operation column.
    3. Add the Security Administrator role.

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:

  • iam:agencies:createAgency
  • iam:permissions:grantRoleToAgency

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.

Table 3 Common operations supported by system-defined permissions

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.

Table 4 Common operations and actions

Operation

Action

Authorization Scope

Remarks

Instance creation page

  • vpc:vpcs:list
  • vpc:subnets:get
  • vpc:securityGroups:get

Supported:

  • IAM project
  • Enterprise project

The VPC, subnet, and security group are displayed on the instance creation page.

Creating an instance

  • nosql:instance:create
  • vpc:vpcs:list
  • vpc:vpcs:get
  • vpc:subnets:get
  • vpc:securityGroups:get
  • vpc:ports:get

Supported:

  • IAM project
  • Enterprise project

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:

  • IAM project
  • Enterprise project

-

Querying instance details

nosql:instance:list

Supported:

  • IAM project
  • Enterprise project

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:

  • IAM project
  • Enterprise project

-

Deleting an instance

nosql:instance:delete

Supported:

  • IAM project
  • Enterprise project

You need to delete the data node IP address.

Restarting an instance

nosql:instance:restart

Supported:

  • IAM project
  • Enterprise project

-

Resetting a password

nosql:instance:modifyPasswd

Supported:

  • IAM project
  • Enterprise project

-

Changing a security group

nosql:instance:modifySecurityGroup

Supported:

  • IAM project
  • Enterprise project

-

Changing a database port

nosql:instance:modifyPort

Supported:

  • IAM project
  • Enterprise project

-

Binding an EIP

nosql:instance:bindPublicIp

Supported:

  • IAM project

When binding an EIP, you need to query created EIPs.

  • Enterprise projects are not supported.
  • Fine-grained authorization is not supported.

For details, see Floating IP Address.

Unbinding an EIP

nosql:instance:unbindPublicIp

Supported:

  • IAM project
  • Enterprise projects are not supported.
  • Fine-grained authorization is not supported.

For details, see .

Scaling up storage

nosql:instance:modifyStorageSize

Supported:

  • IAM project
  • Enterprise project

-

Changing instance specifications

nosql:instance:modifySpecification

Supported:

  • IAM project
  • Enterprise project

-

Adding nodes

  • nosql:instance:extendNode
  • vpc:vpcs:list
  • vpc:vpcs:get
  • vpc:subnets:get
  • vpc:securityGroups:get
  • vpc:ports:get

Supported:

  • IAM project
  • Enterprise project

-

Deleting nodes

nosql:instance:reduceNode

Supported:

  • IAM project
  • Enterprise project

Deleting nodes from a cluster

Modifying a backup policy

nosql:instance:modifyBackupPolicy

Supported:

  • IAM project
  • Enterprise project

-

Renaming an instance

nosql:instance:rename

Supported:

  • IAM project
  • Enterprise project

-

Creating a manual backup

nosql:backup:create

Supported:

  • IAM project
  • Enterprise project

-

Querying the backup list

nosql:backup:list

Supported:

  • IAM project
  • Enterprise project

-

Downloading a backup file

nosql:backup:download

Supported:

  • IAM project
  • Enterprise project

-

Restoring data to a new instance

  • nosql:backup:restoreToNewInstance
  • vpc:vpcs:list
  • vpc:vpcs:get
  • vpc:subnets:get
  • vpc:securityGroups:get
  • vpc:ports:get

Supported:

  • IAM project
  • Enterprise project

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:

  • IAM project
  • Enterprise project

-

Deleting a backup

nosql:backup:delete

Supported:

  • IAM project
  • Enterprise project

-

Creating a parameter template

nosql:param:create

Supported:

  • IAM project
  • Enterprise project

-

Querying the parameter template list

nosql:param:list

Supported:

  • IAM project
  • Enterprise project

-

Changing parameter values in a parameter template

nosql:param:modify

Supported:

  • IAM project
  • Enterprise project

-

Changing parameter settings of an instance node

nosql:instance:modifyParameter

Supported:

  • IAM project
  • Enterprise project

-

Deleting a parameter template

nosql:param:delete

Supported:

  • IAM project
  • Enterprise project

-

Performing an operation on tags

  • nosql:instance:tag
  • tms:resourceTags:list

Supported:

  • IAM project
  • Enterprise project

-

Viewing the tag list

  • nosql:tag:list
  • tms:resourceTags:list

Supported:

  • IAM project
  • Enterprise project

-

Querying enterprise project quotas

nosql:quota:list

Supported:

  • IAM project
  • Enterprise project

-

Modifying enterprise project quotas

nosql:quota:modify

Supported:

  • IAM project
  • Enterprise project

-

Enabling or disabling audit logs

nosql:instance:switchAuditLog

Supported:

  • IAM project
  • Enterprise project

-

Downloading audit logs

nosql:instance:downloadAuditLog

Supported:

  • IAM project
  • Enterprise project

-

Deleting audit logs

nosql:instance:deleteAuditLog

Supported:

  • IAM project
  • Enterprise project

-

Enabling or disabling the display of slow query logs in plaintext

nosql:instance:modifySlowLogPlaintextSwitch

Supported:

  • IAM project
  • Enterprise project

-

Enabling or disabling SSL

nosql:instance:switchSSL

Supported:

  • IAM project
  • Enterprise project

-

Changing a private IP address

nosql:instance:modifyPrivateIp

Supported:

  • IAM project
  • Enterprise project

-

Switching between primary and standby instances

nosql:instance:switchover

Supported:

  • IAM project
  • Enterprise project

-

Patching a database

nosql:instance:upgradeDatabaseVersion

Supported:

  • IAM project
  • Enterprise project

-

Stopping a backup

nosql:backup:stop

Supported:

  • IAM project
  • Enterprise project

-

Querying a log group

lts:groups:get

Supported:

  • IAM project
  • Enterprise project

-

Querying log streams

lts:topics:get

Supported:

  • IAM project
  • Enterprise project

-

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.

Table 5 System-defined identity policies for GeminiDB

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.

Table 6 Common operations supported by system-defined policies

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