Permissions Management

If you need to assign different permissions to employees in your company to access your GaussDB resources, IAM is a good choice for fine-grained permissions management. IAM provides identity authentication, permissions management, and access control, helping you securely manage access to your resources.

If your account does not need individual IAM users for permissions management, you can skip this section.

With IAM, you can use your account to create IAM users for your employees, and assign specific permissions to different users to control their access to specific resource types. For example, you can grant software developers in your company permissions to use GaussDB resources but not the permissions needed to delete them or perform any high-risk operations.

GaussDB Permissions

By default, new IAM users do not have any permissions assigned. You need to add a user to one or more groups, and attach permission policies or roles to these groups. Users inherit permissions from the groups to which they are added and can perform specified operations on cloud services.

GaussDB is a project-level service deployed in specific physical regions. To assign GaussDB permissions to a user group, specify the scope as region-specific projects and select the project (eu-de) for the permissions to take effect. If All projects is selected, the permissions will be granted to the user group in all region-specific projects. When accessing GaussDB, the users need to switch to the authorized region.

You can use roles and policies to manage user permissions.

  • Roles: A coarse-grained way of granting permissions related to users responsibilities. Only a limited number of service-level roles for authorization are available. When using roles to grant permissions, you may need to assign additional roles because of the different dependencies involved with role-based permissions. Roles are not ideal for fine-grained authorization and least privilege access.

  • Policies: A more fine-grained system. Policies let you define permissions required to perform operations on specific cloud resources under certain conditions. This mechanism allows for more flexible policy-based authorization on a principle of least privilege (PoLP) basis. For example, you can grant IAM users only the permissions needed to manage a certain type of GaussDB resources. Most policies define permissions based on APIs.

Table 1 lists all the system-defined policies supported by GaussDB.

Table 1 System-defined policies of GaussDB

Policy Name

Description

Category

GaussDB FullAccess

Full permissions for GaussDB

System-defined policy

GaussDB ReadOnlyAccess

Read-only permissions for GaussDB

System-defined policy

Table 2 lists the common operations supported by each system policy of GaussDB. Choose appropriate system policies based on this table.

Table 2 Common operations supported by each system-defined policy

Operation

GaussDB FullAccess

GaussDB ReadOnlyAccess

Creating a GaussDB instance

Y

x

Deleting a GaussDB instance

Y

x

Querying GaussDB instances

Y

Y

Table 3 Common operations and supported actions

Operation

Action

Remarks

Creating a DB instance

gaussdb:instance:create

gaussdb:param:list

To select a VPC, subnet, and security group, configure the following actions:

vpc:vpcs:list

vpc:vpcs:get

vpc:subnets:get

vpc:securityGroups:get

To create an encrypted instance, configure the following actions for the project:

kms:cmk:get

kms:cmk:list

To report event monitoring of a failed operation, configure the following actions:

"ces:alarmsOnOff:put"

"ces:alarms:create"

Changing vCPUs and memory of an instance

gaussdb:instance:modifySpec

To report event monitoring of a failed operation, configure the following actions:

"ces:alarmsOnOff:put"

"ces:alarms:create"

Adding nodes

gaussdb:instance:modifySpec

To report event monitoring of a failed operation, configure the following actions:

"ces:alarmsOnOff:put"

"ces:alarms:create"

Scaling up storage

gaussdb:instance:modifySpec

To report event monitoring of a failed operation, configure the following actions:

"ces:alarmsOnOff:put"

"ces:alarms:create"

Rebooting a DB instance

gaussdb:instance:restart

To report event monitoring of a failed operation, configure the following actions:

"ces:alarmsOnOff:put"

"ces:alarms:create"

Deleting a DB instance

gaussdb:instance:delete

To report event monitoring of a failed operation, configure the following actions:

"ces:alarmsOnOff:put"

"ces:alarms:create"

Querying instances

gaussdb:instance:list

N/A

Querying instance details

gaussdb:instance:list

To display VPC, subnet, and security group information in the instance list, configure vpc:*:get and vpc:*:list. To display the disk usage, configure ces:*:list.

Changing a DB instance password

gaussdb:instance:modify

To report event monitoring of a failed operation, configure the following actions:

"ces:alarmsOnOff:put"

"ces:alarms:create"

Changing a DB instance name

gaussdb:instance:modify

N/A

Binding or unbinding an EIP

gaussdb:instance:modify

To display EIPs on the console, configure the following actions:

vpc:publicIps:get

vpc:publicIps:list

To report event monitoring of a failed operation, configure the following actions:

ces:alarmsOnOff:put

ces:alarms:create

Creating a parameter template

gaussdb:param:create

gaussdb:param:list

N/A

Modifying a parameter template

gaussdb:param:modify

N/A

Obtaining parameter templates

gaussdb:param:list

N/A

Applying a parameter template

gaussdb:param:apply

To report event monitoring of a failed operation, configure the following actions:

ces:alarmsOnOff:put

ces:alarms:create

Deleting a parameter template

gaussdb:param:delete

N/A

Creating a manual backup

gaussdb:backup:create

To report event monitoring of a failed operation, configure the following actions:

ces:alarmsOnOff:put

ces:alarms:create

Obtaining backups

gaussdb:backup:list

N/A

Modifying the backup policy

gaussdb:instance:modifyBackupPolicy

N/A

Deleting a manual backup

gaussdb:backup:delete

To report event monitoring of a failed operation, configure the following actions:

ces:alarmsOnOff:put

ces:alarms:create

Restoring data to a new DB instance

gaussdb:instance:create

To select a VPC, subnet, and security group, configure the following actions:

vpc:vpcs:list

vpc:vpcs:get

vpc:subnets:get

vpc:securityGroups:get

To report event monitoring of a failed operation, configure the following actions:

ces:alarmsOnOff:put

ces:alarms:create

Querying project tags

gaussdb:tag:list

N/A

Adding or deleting project tags in batches

gaussdb:instance:dealTag

N/A

Modifying quotas

gaussdb:quota:modify

N/A