Access management in Managed Service for MySQL®
In this section, you will learn:
- Which resources you can assign a role for.
- Which roles exist in the service.
- Which roles are required for particular actions.
About access management
In Yandex Cloud, all transactions are checked in Yandex Identity and Access Management. If a subject does not have the required permission, the service returns an error.
To grant permissions for a resource, assign roles for this resource to the subject that will perform the operations. You can assign roles to a Yandex account, service account, federated users, user group, system group, or public group. For more information, see How access management works in Yandex Cloud.
Roles for a resource can be assigned by users who have the mdb.admin
, managed-mysql.admin
, or one of the following roles for that resource:
admin
resource-manager.admin
organization-manager.admin
resource-manager.clouds.owner
organization-manager.organizations.owner
Which resources you can assign a role for
You can assign a role to an organization, cloud, or folder. The roles assigned for organizations, clouds, or folders also apply to nested resources.
To allow access to service resources (DB clusters and hosts, cluster backups, databases and their users), assign the user the appropriate roles for the folder, cloud, or organization containing these resources.
Which roles exist in the service
The chart below shows which roles are available in the service and how they inherit each other's permissions. For example, the editor
role includes all the permissions of viewer
. You can find the description of each role under the chart.
Service roles
managed-mysql.auditor
The managed-mysql.auditor
role allows you to view information on MySQL® hosts and clusters, as well as quotas and resource operations for Managed Service for MySQL®.
managed-mysql.viewer
The managed-mysql.viewer
role allows you to view information on MySQL® clusters, hosts, databases, users, and cluster logs, as well as on quotas and resource operations.
Users with this role can:
- View information on MySQL® clusters.
- View information on MySQL® cluster hosts.
- View information on MySQL® databases.
- View information on MySQL® users.
- View information on MySQL® DB backups.
- View information on MySQL® alerts.
- View MySQL® cluster logs.
- View information on the results of MySQL® cluster performance diagnostics.
- View information on quotas of Managed Service for MySQL®.
- View information on resource operations for Managed Service for MySQL®.
This role also includes the managed-mysql.auditor
permissions.
managed-mysql.editor
The managed-mysql.editor
role allows you to manage MySQL® clusters and view their logs, as well as get information on service quotas and resource operations.
Users with this role can:
- View information on MySQL® clusters, as well as create, modify, delete, run, and stop them.
- View information on MySQL® cluster hosts, as well as create, modify, and delete them.
- View information on MySQL® databases, as well as create, modify, and delete them.
- View information on MySQL® users, as well as create, modify, and delete them.
- View information on MySQL® DB backups, as well as create and delete them.
- View information on MySQL® alerts, as well as create, modify, and delete them.
- View MySQL® cluster logs.
- View information on the results of MySQL® cluster performance diagnostics.
- View information on quotas of Managed Service for MySQL®.
- View information on resource operations for Managed Service for MySQL®.
This role also includes the managed-mysql.viewer
permissions.
To create MySQL® clusters, you also need the vpc.user
role.
managed-mysql.admin
The managed-mysql.admin
role allows you to manage MySQL® clusters and view their logs, as well as get information on quotas and resource operations.
Users with this role can:
- Manage access to MySQL® clusters.
- View information on MySQL® clusters, as well as create, modify, delete, run, and stop them.
- View information on MySQL® cluster hosts, as well as create, modify, and delete them.
- View information on MySQL® databases, as well as create, modify, and delete them.
- View information on MySQL® users, as well as create, modify, and delete them.
- View information on MySQL® DB backups, as well as create and delete them.
- View information on MySQL® alerts, as well as create, modify, and delete them.
- View MySQL® cluster logs.
- View information on the results of MySQL® cluster performance diagnostics.
- View information on quotas of Managed Service for MySQL®.
- View information on resource operations for Managed Service for MySQL®.
This role also includes the managed-mysql.editor
permissions.
To create MySQL® clusters, you also need the vpc.user
role.
mdb.auditor
The mdb.auditor
role grants the minimum permissions required to view information about managed database clusters (without access to data or runtime logs).
Users with this role can view information about managed database clusters, quotas, and folders.
This role also includes the managed-opensearch.auditor
, managed-kafka.auditor
, managed-mysql.auditor
, managed-sqlserver.auditor
, managed-postgresql.auditor
, managed-greenplum.auditor
, managed-clickhouse.auditor
, managed-redis.auditor
, and managed-mongodb.auditor
permissions.
mdb.viewer
The mdb.viewer
role grants read access to managed database clusters and cluster runtime logs.
Users with this role can read from databases, inspect the logs of managed database clusters, and view information about clusters, quotas, and folders.
This role also includes the mdb.auditor
, managed-opensearch.viewer
, managed-kafka.viewer
, managed-mysql.viewer
, managed-sqlserver.viewer
, managed-postgresql.viewer
, managed-greenplum.viewer
, managed-clickhouse.viewer
, managed-redis.viewer
, managed-mongodb.viewer
, and dataproc.viewer
permissions.
mdb.admin
The mdb.admin
role grants full access to managed database clusters.
Users with this role can create, edit, delete, run, and stop managed database clusters, manage cluster access, read and write to databases, and view information about clusters, runtime logs, quotas, and folders.
This role also includes the mdb.viewer
, vpc.user
, managed-opensearch.admin
, managed-kafka.admin
, managed-mysql.admin
, managed-sqlserver.admin
, managed-postgresql.admin
, managed-greenplum.admin
, managed-clickhouse.admin
, managed-redis.admin
, managed-mongodb.admin
, and dataproc.admin
permissions.
vpc.publicAdmin
The vpc.publicAdmin
role allows you to manage NAT gateways, public IP addresses, and external network connectivity, as well as view information on the quotas, resources, and resource operations. This role grants administrator privileges for multi-interface instances that provide connectivity between multiple networks.
Users with this role can:
- View the list of cloud networks and info on them, as well as set up external access to them.
- Manage connectivity of multiple cloud networks.
- Manage multi-interface instances that provide connectivity between multiple networks.
- View the list of subnets and info on them, as well as modify them.
- View information on NAT gateways, as well as create, modify, and delete them.
- Connect NAT gateways to route tables.
- View the list of cloud resource addresses and info on them, as well as create, update, and delete public IP addresses.
- View the list of route tables and info on them, as well as link them to subnets.
- View the list of security groups and the info on them.
- View information on the IP addresses used in subnets.
- View information on Virtual Private Cloud quotas.
- View information on resource operations for Virtual Private Cloud.
- View information on resource operations for Compute Cloud.
- View information on the relevant cloud.
- View info on the relevant folder.
This role also includes the vpc.viewer
permissions.
You can assign a role for a cloud or folder.
Warning
If a network and subnet are in different folders, the vpc.publicAdmin
role is checked for the folder where the network is located.
Primitive roles
Primitive roles allow users to perform actions in all Yandex Cloud services.
auditor
The auditor
role grants a permission to read configuration and metadata of any Yandex Cloud resources without any access to data.
For instance, users with this role can:
- View info on a resource.
- View the resource metadata.
- View the list of operations with a resource.
auditor
is the most secure role that does not grant any access to the service data. This role suits the users who need minimum access to the Yandex Cloud resources.
viewer
The viewer
role grants the permissions to read the info on any Yandex Cloud resources.
This role also includes the auditor
permissions.
Unlike auditor
, the viewer
role provides access to service data in read mode.
editor
The editor
role provides permissions to manage any Yandex Cloud resources, except for assigning roles to other users, transferring organization ownership, removing an organization, and deleting Key Management Service encryption keys.
For instance, users with this role can create, modify, and delete resources.
This role also includes the viewer
permissions.
admin
The admin
role enables assigning any roles, except for resource-manager.clouds.owner
and organization-manager.organizations.owner
, and provides permissions to manage any Yandex Cloud resources (except for transferring organization ownership and removing an organization).
Prior to assigning the admin
role for an organization, cloud, or billing account, make sure to check out the information on protecting privileged accounts.
This role also includes the editor
permissions.
Instead of primitive roles, we recommend using service roles. This ensures more selective access control and implementation of the principle of least privilege.
For more information about primitive roles, see the Yandex Cloud role reference.
Roles required
To use the service, you need the managed-mysql.editor role or higher for the folder to house the new cluster. The managed-mysql.viewer
role enables you only to view the list of clusters.
To create a Managed Service for MySQL® cluster, you need the vpc.user role and the managed-mysql.editor
role or higher.
You can always assign a role with more permissions. For instance, you can assign managed-mysql.admin
instead of managed-mysql.editor
.