[Yandex Cloud documentation](../../index.md) > [Yandex Data Streams](../index.md) > Access management

# Access management in Data Streams

Data Streams uses [roles](../../iam/concepts/access-control/roles.md) to manage access permissions.

Yandex Cloud users can only perform operations on resources within the permissions of the [roles](../../iam/concepts/access-control/roles.md) assigned to them. With no roles assigned, almost no operations are allowed.

To allow access to Yandex Data Streams resources (data streams, Yandex Managed Service for YDB databases for streams and their users), assign relevant roles from the list below to a Yandex account, [service account](../../iam/concepts/users/service-accounts.md), [federated](../../iam/concepts/users/accounts.md#saml-federation) or [local](../../iam/concepts/users/accounts.md#local) users, [user group](../../organization/operations/manage-groups.md), [system group](../../iam/concepts/access-control/system-group.md), or [public group](../../iam/concepts/access-control/public-group.md). Currently, a role can only be assigned for a parent resource, such as a folder or cloud. Roles are inherited by nested resources.

For more information about role inheritance, see [Inheriting access permissions](../../resource-manager/concepts/resources-hierarchy.md#access-rights-inheritance) for Yandex Resource Manager.

To assign a role for a resource, you need the `yds.admin` role or one of the following roles for that resource:

* `admin`
* `resource-manager.admin`
* `organization-manager.admin`
* `resource-manager.clouds.owner`
* `organization-manager.organizations.owner`

## Assigning roles {#grant-roles}

To assign a role to a user:

1. [Add](../../organization/operations/add-account.md) the appropriate user, if required.
1. In the [management console](https://console.yandex.cloud), on the left, [select](../../resource-manager/operations/cloud/switch-cloud.md) a cloud.
1. Navigate to the **Access bindings** tab.
1. Click **Configure access**.
1. In the window that opens, select **User accounts**.
1. Select a user from the list or use the user search option.
1. Click ![image](../../_assets/console-icons/plus.svg) **Add role** and select a role for the cloud.
1. Click **Save**.

## Roles this service has {#roles-list}

The list below shows all the roles used for access control in Data Streams.

```mermaid
flowchart BT
    yds.editor ~~~ yds.admin
    ydb.editor --> yds.editor
    yds.viewer --> yds.editor
    yds.auditor ~~~ yds.viewer
    ydb.admin --> yds.admin
    ydb.editor --> ydb.admin
    yds.writer --> yds.editor
    ydb.viewer --> yds.viewer
    ydb.auditor --> yds.auditor
    ydb.viewer --> ydb.editor
    ydb.auditor --> ydb.viewer
```

### Service roles {#service-roles}

#### yds.auditor {#yds-auditor}

The `yds.auditor` role enables viewing metadata of streams in Yandex Data Streams, establishing YDB database connections, and viewing info on YDB databases and the relevant access permissions granted for them, as well as on the YDB database schema objects and backups.

Users with this role can:
* View [streams](../concepts/glossary.md#stream-concepts) metadata in Yandex Data Streams.
* Establish [YDB database](../../ydb/concepts/resources.md#database) connections.
* View the list of YDB databases and info on them, as well as on the relevant [access permissions](../../iam/concepts/access-control/index.md) granted for them.
* View info on YDB database backups and the relevant access permissions granted for them.
* View the list of YDB database schema objects, such as tables, indexes, and folders, and info on them.
* View info on the [quotas](../../ydb/concepts/limits.md#ydb-quotas) for Managed Service for YDB.
* View info on the relevant [cloud](../../resource-manager/concepts/resources-hierarchy.md#cloud) and [folder](../../resource-manager/concepts/resources-hierarchy.md#folder).

This role includes the `ydb.auditor` permissions.

#### yds.viewer {#yds-viewer}

The `yds.viewer` role enables reading data from streams in Yandex Data Streams and viewing their settings, as well as establishing connections to YDB databases, querying them for reading, and viewing info on YDB databases and the relevant access permissions granted for them.

Users with this role can:
* View metadata of [streams](../concepts/glossary.md#stream-concepts) in Yandex Data Streams and read data from those steams.
* Establish connections to [YDB databases](../../ydb/concepts/resources.md#database) and query them for reading.
* View the list of YDB databases and info on them, as well as on the relevant [access permissions](../../iam/concepts/access-control/index.md) granted for them.
* View info on YDB database backups and the relevant access permissions granted for them.
* View the list of YDB database schema objects, such as tables, indexes, and folders, and info on them.
* View info on the [quotas](../../ydb/concepts/limits.md#ydb-quotas) for Managed Service for YDB.
* View info on the relevant [cloud](../../resource-manager/concepts/resources-hierarchy.md#cloud) and [folder](../../resource-manager/concepts/resources-hierarchy.md#folder).

This role includes the `ydb.viewer` permissions.

#### yds.writer {#yds-writer}

The `yds.writer` role enables writing data to [streams in Yandex Data Streams](../concepts/glossary.md#stream-concepts) and connecting to [YDB databases](../../ydb/concepts/resources.md#database).

#### yds.editor {#yds-editor}

The `yds.editor` role enables creating, modifying, and deleting streams in Yandex Data Streams, as well as reading and writing data from and to those streams.

Users with this role can:
* View info on [data streams](../concepts/glossary.md#stream-concepts) and create, modify, and delete them.
* Read and write data from and to streams in Yandex Data Streams.
* View the list of [YDB databases](../../ydb/concepts/resources.md#database), info on them, and the relevant [access permissions](../../iam/concepts/access-control/index.md) granted for them, as well as create, run, stop, modify, and delete YDB databases. 
* Establish connections to YDB databases and query them for reading and writing.
* View info on YDB database backups and the relevant access permissions granted for them, as well as create and delete them, and use them to restore databases.
* View the list of YDB database schema objects, such as tables, indexes, and folders, and info on them, as well as create, modify, and delete such objects.
* View info on the [quotas](../../ydb/concepts/limits.md#ydb-quotas) for Managed Service for YDB.
* View info on the relevant [cloud](../../resource-manager/concepts/resources-hierarchy.md#cloud) and [folder](../../resource-manager/concepts/resources-hierarchy.md#folder).

This role includes the `ydb.editor` and `yds.writer` permissions.

#### yds.admin {#yds-admin}

The `yds.admin` role enables creating, modifying, and deleting streams in Yandex Data Streams, as well as reading and writing data from and to those streams.

Users with this role can:
* View info on [data streams](../concepts/glossary.md#stream-concepts) and create, modify, and delete them.
* Read and write data from and to streams in Yandex Data Streams.
* View the list of [YDB databases](../../ydb/concepts/resources.md#database) and info on them, as well as create, run, stop, modify, and delete them.
* View info on granted [access permissions](../../iam/concepts/access-control/index.md) for the relevant YDB databases and modify such permissions.
* Establish connections to YDB databases and query them for reading and writing.
* View info on YDB database backups, as well as create and delete them and use them to restore YDB databases.
* View info on granted access permissions to backups and modify such permissions.
* View the list of YDB database schema objects, such as tables, indexes, and folders, and info on them, as well as create, modify, and delete such objects.
* View info on the [quotas](../../ydb/concepts/limits.md#ydb-quotas) for Managed Service for YDB.
* View info on the relevant [cloud](../../resource-manager/concepts/resources-hierarchy.md#cloud) and [folder](../../resource-manager/concepts/resources-hierarchy.md#folder).

This role includes the `ydb.admin` permissions.

### Primitive roles {#primitive-roles}

Primitive roles allow users to perform actions in all Yandex Cloud [services](../../overview/concepts/services.md).

#### auditor {#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](../../resource-manager/concepts/resources-hierarchy.md).
* 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](../../overview/concepts/services.md) data. This role suits the users who need minimum access to the Yandex Cloud resources.

#### viewer {#viewer}

The `viewer` role grants the permissions to read the info on any Yandex Cloud [resources](../../resource-manager/concepts/resources-hierarchy.md).

This role includes the `auditor` permissions.

Unlike `auditor`, the `viewer` role provides access to [service](../../overview/concepts/services.md) data in read mode.

#### editor {#editor}

The `editor` role provides permissions to manage any Yandex Cloud [resources](../../resource-manager/concepts/resources-hierarchy.md), except for assigning roles to other users, transferring [organization](../../organization/concepts/organization.md) ownership, removing an organization, and deleting Key Management Service [encryption keys](../../kms/concepts/index.md).

For instance, users with this role can create, modify, and delete resources.

This role includes the `viewer` permissions.

#### admin {#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](../../resource-manager/concepts/resources-hierarchy.md) (except for transferring [organization](../../organization/concepts/organization.md) ownership and removing an organization).

Prior to assigning the `admin` role for an organization, [cloud](../../resource-manager/concepts/resources-hierarchy.md#cloud), or [billing account](../../billing/concepts/billing-account.md), make sure to check out the information on protecting [privileged accounts](../../security/standard/all.md#privileged-users).

This role includes the `editor` permissions.

Instead of primitive roles, we recommend using service roles with more granular access control, allowing you to implement the [least privilege principle](../../security/standard/all.md#min-privileges).

For more information on primitive roles, see the [Yandex Cloud role reference](../../iam/roles-reference.md#primitive-roles).