Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions content/operate/rs/security/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,16 @@ Redis Software provides various features to secure your deployment:

| Login and passwords | Users and roles | Encryption and TLS | Certificates and audit |
|---------------------|-----------------|--------------------|-----------------------|
| [Password attempts and session timeout]({{<relref "/operate/rs/security/access-control/manage-users/login-lockout">}}) | [Cluster and database access explained]({{<relref "/operate/rs/security/access-control">}}) | [Enable TLS]({{<relref "/operate/rs/security/encryption/tls/enable-tls">}}) | [Create certificates]({{<relref "/operate/rs/security/certificates/create-certificates">}}) |
| [Password complexity]({{<relref "/operate/rs/security/access-control/manage-passwords/password-complexity-rules">}}) | [Create users]({{<relref "/operate/rs/security/access-control/create-users">}}) | [Configure TLS protocols]({{<relref "/operate/rs/security/encryption/tls/tls-protocols">}}) | [Monitor certificates]({{<relref "/operate/rs/security/certificates/monitor-certificates">}}) |
| [Password expiration]({{<relref "/operate/rs/security/access-control/manage-passwords/password-expiration">}}) | [Create roles]({{<relref "/operate/rs/security/access-control/create-combined-roles">}}) | [Configure cipher suites]({{<relref "/operate/rs/security/encryption/tls/ciphers">}}) | [Update certificates]({{<relref "/operate/rs/security/certificates/updating-certificates">}}) |
| [Default database access]({{<relref "/operate/rs/security/access-control/manage-users/default-user">}}) | [Redis ACLs]({{<relref "/operate/rs/security/access-control/redis-acl-overview">}}) | [Encrypt private keys on disk]({{<relref "/operate/rs/security/encryption/pem-encryption">}}) | [Enable OCSP stapling]({{<relref "/operate/rs/security/certificates/ocsp-stapling">}}) |
| [Rotate user passwords]({{<relref "/operate/rs/security/access-control/manage-passwords/rotate-passwords">}}) | [Integrate with LDAP]({{<relref "/operate/rs/security/access-control/ldap">}}) | [Internode encryption]({{<relref "/operate/rs/security/encryption/internode-encryption">}}) | [Audit database connections]({{<relref "/operate/rs/security/audit-events">}}) |
| [Single sign-on (SSO)]({{<relref "/operate/rs/security/access-control/saml-sso">}}) | | | |
| [Password attempts and session timeout](/content/operate/rs/security/access-control/manage-users/login-lockout.md) | [Cluster and database access explained](/content/operate/rs/security/access-control/_index.md) | [Enable TLS](/content/operate/rs/security/encryption/tls/enable-tls.md) | [Create certificates](/content/operate/rs/security/certificates/create-certificates.md) |
| [Password complexity](/content/operate/rs/security/access-control/manage-passwords/password-complexity-rules.md) | [Create users](/content/operate/rs/security/access-control/create-users.md) | [Configure TLS protocols](/content/operate/rs/security/encryption/tls/tls-protocols.md) | [Monitor certificates](/content/operate/rs/security/certificates/monitor-certificates.md) |
| [Password expiration](/content/operate/rs/security/access-control/manage-passwords/password-expiration.md) | [Create roles](/content/operate/rs/security/access-control/create-combined-roles.md) | [Configure cipher suites](/content/operate/rs/security/encryption/tls/ciphers.md) | [Update certificates](/content/operate/rs/security/certificates/updating-certificates.md) |
| [Default database access](/content/operate/rs/security/access-control/manage-users/default-user.md) | [Redis ACLs](/content/operate/rs/security/access-control/redis-acl-overview.md) | [Encrypt private keys on disk](/content/operate/rs/security/encryption/pem-encryption.md) | [Enable OCSP stapling](/content/operate/rs/security/certificates/ocsp-stapling.md) |
| [Rotate user passwords](/content/operate/rs/security/access-control/manage-passwords/rotate-passwords.md) | [Integrate with LDAP](/content/operate/rs/security/access-control/ldap/_index.md) | [Internode encryption](/content/operate/rs/security/encryption/internode-encryption.md) | [Audit database connections](/content/operate/rs/security/audit-events.md) |
| [Single sign-on (SSO)](/content/operate/rs/security/access-control/saml-sso.md) | | | |

## Recommended security practices

See [Recommended security practices]({{<relref "/operate/rs/security/recommended-security-practices">}}) to learn how to protect Redis Software.
See [Recommended security practices](/content/operate/rs/security/recommended-security-practices.md) to learn how to protect Redis Software.

## Redis Trust Center

Expand Down
9 changes: 4 additions & 5 deletions content/operate/rs/security/access-control/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,12 +39,11 @@ The following diagram shows three different options for roles and users:

## Default database access

When you create a database, [default user access]({{< relref "/operate/rs/security/access-control/manage-users/default-user" >}}) is enabled automatically.
When you create a database, [default user access](/content/operate/rs/security/access-control/manage-users/default-user.md) is enabled automatically.

If you set up role-based access controls for your database and don't require compatibility with versions earlier than Redis 6, you can [deactivate the default user]({{< relref "/operate/rs/security/access-control/manage-users/default-user" >}}).
If you set up role-based access controls for your database and don't require compatibility with versions earlier than Redis 6, you can [deactivate the default user](/content/operate/rs/security/access-control/manage-users/default-user.md).

{{<warning>}}
Before you [deactivate default user access]({{< relref "/operate/rs/security/access-control/manage-users/default-user#deactivate-default-user" >}}), make sure the role associated with the database is [assigned to a user]({{< relref "/operate/rs/security/access-control/create-users#assign-roles-to-users" >}}). Otherwise, the database will be inaccessible.
{{</warning>}}
> [!WARNING]
> Before you [deactivate default user access](/content/operate/rs/security/access-control/manage-users/default-user.md#deactivate-default-user), make sure the role associated with the database is [assigned to a user](/content/operate/rs/security/access-control/create-users.md#assign-roles-to-users). Otherwise, the database will be inaccessible.

## More info
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Roles with cluster access allow access to the Cluster Management UI and REST API

## Default management roles

Redis Software includes five predefined roles that determine a user's level of access to the Cluster Manager UI and [REST API]({{<relref "/operate/rs/references/rest-api">}}).
Redis Software includes five predefined roles that determine a user's level of access to the Cluster Manager UI and [REST API](/content/operate/rs/references/rest-api/_index.md).

1. **DB Viewer** - Read database settings
1. **DB Member** - Administer databases
Expand All @@ -24,7 +24,7 @@ Redis Software includes five predefined roles that determine a user's level of a
1. **Admin** - Full cluster access
1. **None** - For data access only - cannot access the Cluster Manager UI or use the REST API

For more details about the privileges granted by each of these roles, see [Cluster Manager UI permissions](#cluster-manager-ui-permissions) or [REST API permissions]({{<relref "/operate/rs/references/rest-api/permissions">}}).
For more details about the privileges granted by each of these roles, see [Cluster Manager UI permissions](#cluster-manager-ui-permissions) or [REST API permissions](/content/operate/rs/references/rest-api/permissions.md).

## Cluster Manager UI permissions

Expand Down Expand Up @@ -77,7 +77,7 @@ To create a role that grants cluster access using the Cluster Manager UI:

-tab-sep-

To [create a role]({{<relref "/operate/rs/references/rest-api/requests/roles#post-role">}}) that grants cluster access using the REST API:
To [create a role](/content/operate/rs/references/rest-api/requests/roles/_index.md#post-role) that grants cluster access using the REST API:

```sh
POST /v1/roles
Expand All @@ -88,13 +88,13 @@ POST /v1/roles
```
{{< /multitabs >}}

You can [assign the new role to users]({{<relref "/operate/rs/security/access-control/create-users#assign-roles-to-users">}}) to grant cluster access.
You can [assign the new role to users](/content/operate/rs/security/access-control/create-users.md#assign-roles-to-users) to grant cluster access.

## Scope a role to specific databases

By default, the `db_member` and `db_viewer` [management roles](#default-management-roles) grant access to every database in the cluster. In a shared or multi-tenant cluster, you can scope one of these roles to specific databases so that users assigned the role can view or manage only those databases.

To scope a role, add the `resources` field when you [create]({{<relref "/operate/rs/references/rest-api/requests/roles#post-role">}}) or [update]({{<relref "/operate/rs/references/rest-api/requests/roles#put-role">}}) a role with the REST API. The `resources` field is a list of resource scopes; each scope has a `type` (currently only `db`) and a `uids` array of the database IDs the role applies to.
To scope a role, add the `resources` field when you [create](/content/operate/rs/references/rest-api/requests/roles/_index.md#post-role) or [update](/content/operate/rs/references/rest-api/requests/roles/_index.md#put-role) a role with the REST API. The `resources` field is a list of resource scopes; each scope has a `type` (currently only `db`) and a `uids` array of the database IDs the role applies to.

For example, the following request creates a `db_member` role scoped to databases `1` and `2`:

Expand All @@ -109,14 +109,13 @@ POST /v1/roles
}
```

When you [assign this role to a user]({{<relref "/operate/rs/security/access-control/create-users#assign-roles-to-users">}}):
When you [assign this role to a user](/content/operate/rs/security/access-control/create-users.md#assign-roles-to-users):

- The user can view or manage only the databases listed in the role's `resources` scope.

- In the Cluster Manager UI and REST API responses, the user sees only their authorized databases, including in database lists, metrics, alerts, and event logs. Other databases are hidden.

To return a role to cluster-wide scope, update it with an empty `resources` list or omit the field. Roles without a `resources` scope apply to all databases, so existing roles are unaffected.

{{<note>}}
Database scoping applies to the `db_member` and `db_viewer` management roles.
{{</note>}}
> [!NOTE]
> Database scoping applies to the `db_member` and `db_viewer` management roles.
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,13 @@ To define a Redis ACL rule using the Cluster Manager UI:

1. Enter a descriptive name for the Redis ACL. This will be used to associate the ACL rule with the role.

1. Define the ACL rule. For more information about Redis ACL rules and syntax, see the [Redis ACL overview]({{<relref "/operate/rs/security/access-control/redis-acl-overview">}}).
1. Define the ACL rule. For more information about Redis ACL rules and syntax, see the [Redis ACL overview](/content/operate/rs/security/access-control/redis-acl-overview.md).

1. Click **Save**.

-tab-sep-

To define a Redis ACL rule using the REST API, use a [create Redis ACL]({{<relref "/operate/rs/references/rest-api/requests/redis_acls#post-redis_acl">}}) request. For more information about Redis ACL rules and syntax, see the [Redis ACL overview]({{<relref "/operate/rs/security/access-control/redis-acl-overview">}}).
To define a Redis ACL rule using the REST API, use a [create Redis ACL](/content/operate/rs/references/rest-api/requests/redis_acls/_index.md#post-redis_acl) request. For more information about Redis ACL rules and syntax, see the [Redis ACL overview](/content/operate/rs/security/access-control/redis-acl-overview.md).

Example request:

Expand All @@ -66,9 +66,8 @@ To associate the Redis ACL with a role and database, use the `uid` from the resp

{{< /multitabs >}}

{{<note>}}
For multi-key commands on multi-slot keys, the return value is `failure`, but the command runs on the keys that are allowed.
{{</note>}}
> [!NOTE]
> For multi-key commands on multi-slot keys, the return value is `failure`, but the command runs on the keys that are allowed.

## Create roles with ACLs and cluster access {#create-role}

Expand All @@ -90,7 +89,7 @@ To define a role for combined access using the Cluster Manager UI:

1. Enter a descriptive name for the role. This will be used to reference the role when configuring users.

1. Choose a **Management role** other than **None**. For details about permissions granted by each role, see [Cluster Manager UI permissions]({{<relref "/operate/rs/security/access-control/create-cluster-roles#cluster-manager-ui-permissions">}}) and [REST API permissions]({{<relref "/operate/rs/references/rest-api/permissions">}}).
1. Choose a **Management role** other than **None**. For details about permissions granted by each role, see [Cluster Manager UI permissions](/content/operate/rs/security/access-control/create-cluster-roles.md#cluster-manager-ui-permissions) and [REST API permissions](/content/operate/rs/references/rest-api/permissions.md).

<img src="../../../../../images/rs/screenshots/access-control/7-22-updates/create-role-combined-access-select-management-role.png" alt="Add role with name">

Expand All @@ -108,7 +107,7 @@ To define a role for combined access using the Cluster Manager UI:

To define a role for combined access using the REST API:

1. Use a [create role]({{<relref "/operate/rs/references/rest-api/requests/roles#post-role">}}) request:
1. Use a [create role](/content/operate/rs/references/rest-api/requests/roles/_index.md#post-role) request:

```sh
POST /v1/roles
Expand All @@ -130,7 +129,7 @@ To define a role for combined access using the REST API:

To associate the role with a Redis ACL and database, use the `uid` from the response as the `role_uid` when you add `roles_permissions` to the database.

2. [Update a database's configuration]({{<relref "/operate/rs/references/rest-api/requests/bdbs#put-bdbs">}}) to add `roles_permissions` with the role and Redis ACL:
2. [Update a database's configuration](/content/operate/rs/references/rest-api/requests/bdbs/_index.md#put-bdbs) to add `roles_permissions` with the role and Redis ACL:

```sh
POST /v1/bdbs/<database-id>
Expand All @@ -147,4 +146,4 @@ To define a role for combined access using the REST API:

{{< /multitabs >}}

You can [assign the new role to users]({{<relref "/operate/rs/security/access-control/create-users#assign-roles-to-users">}}) to grant database access and access to the Cluster Manager UI and REST API.
You can [assign the new role to users](/content/operate/rs/security/access-control/create-users.md#assign-roles-to-users) to grant database access and access to the Cluster Manager UI and REST API.
17 changes: 8 additions & 9 deletions content/operate/rs/security/access-control/create-db-roles.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ linkTitle: Create roles with database access only
weight: 15
---

Roles with database access grant the ability to access and interact with a database's data. Database access privileges are determined by defining [Redis ACLs]({{<relref "/operate/rs/security/access-control/redis-acl-overview">}}) and adding them to roles.
Roles with database access grant the ability to access and interact with a database's data. Database access privileges are determined by defining [Redis ACLs](/content/operate/rs/security/access-control/redis-acl-overview.md) and adding them to roles.

To create a role that grants database access without granting access to the Redis Software Cluster Manager UI and REST API:

Expand All @@ -36,13 +36,13 @@ To define a Redis ACL rule using the Cluster Manager UI:

1. Enter a descriptive name for the Redis ACL. This will be used to associate the ACL rule with the role.

1. Define the ACL rule. For more information about Redis ACL rules and syntax, see the [Redis ACL overview]({{<relref "/operate/rs/security/access-control/redis-acl-overview">}}).
1. Define the ACL rule. For more information about Redis ACL rules and syntax, see the [Redis ACL overview](/content/operate/rs/security/access-control/redis-acl-overview.md).

1. Click **Save**.

-tab-sep-

To define a Redis ACL rule using the REST API, use a [create Redis ACL]({{<relref "/operate/rs/references/rest-api/requests/redis_acls#post-redis_acl">}}) request. For more information about Redis ACL rules and syntax, see the [Redis ACL overview]({{<relref "/operate/rs/security/access-control/redis-acl-overview">}}).
To define a Redis ACL rule using the REST API, use a [create Redis ACL](/content/operate/rs/references/rest-api/requests/redis_acls/_index.md#post-redis_acl) request. For more information about Redis ACL rules and syntax, see the [Redis ACL overview](/content/operate/rs/security/access-control/redis-acl-overview.md).

Example request:

Expand All @@ -68,9 +68,8 @@ To associate the Redis ACL with a role and database, use the `uid` from the resp

{{< /multitabs >}}

{{<note>}}
For multi-key commands on multi-slot keys, the return value is `failure`, but the command runs on the keys that are allowed.
{{</note>}}
> [!NOTE]
> For multi-key commands on multi-slot keys, the return value is `failure`, but the command runs on the keys that are allowed.

## Create roles with ACLs

Expand Down Expand Up @@ -108,7 +107,7 @@ To define a role for database access using the Cluster Manager UI:

To define a role for database access using the REST API:

1. Use a [create role]({{<relref "/operate/rs/references/rest-api/requests/roles#post-role">}}) request:
1. Use a [create role](/content/operate/rs/references/rest-api/requests/roles/_index.md#post-role) request:

```sh
POST /v1/roles
Expand All @@ -130,7 +129,7 @@ To define a role for database access using the REST API:

To associate the role with a Redis ACL and database, use the `uid` from the response as the `role_uid` when you add `roles_permissions` to the database.

1. [Update a database's configuration]({{<relref "/operate/rs/references/rest-api/requests/bdbs#put-bdbs">}}) to add `roles_permissions` with the role and Redis ACL:
1. [Update a database's configuration](/content/operate/rs/references/rest-api/requests/bdbs/_index.md#put-bdbs) to add `roles_permissions` with the role and Redis ACL:

```sh
POST /v1/bdbs/<database-id>
Expand All @@ -147,4 +146,4 @@ To define a role for database access using the REST API:

{{< /multitabs >}}

You can [assign the new role to users]({{<relref "/operate/rs/security/access-control/create-users#assign-roles-to-users">}}) to grant database access.
You can [assign the new role to users](/content/operate/rs/security/access-control/create-users.md#assign-roles-to-users) to grant database access.
Loading
Loading