Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docs for orgs, rbac and sso #1875

Merged
merged 4 commits into from
Oct 10, 2023
Merged
Show file tree
Hide file tree
Changes from 2 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
35 changes: 0 additions & 35 deletions docs/book/deploying-zenml/zenml-cloud/get-started.md

This file was deleted.

91 changes: 91 additions & 0 deletions docs/book/deploying-zenml/zenml-cloud/user-management.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
# User Management

htahir1 marked this conversation as resolved.
Show resolved Hide resolved
### Organizations, Tenants, and Roles
htahir1 marked this conversation as resolved.
Show resolved Hide resolved

ZenML Cloud arranges various aspects of your work experience around the concept
of an **Organization.** This is the topmost level structure within the ZenML
htahir1 marked this conversation as resolved.
Show resolved Hide resolved
Cloud environment. Generally, an organization contains a group of users and one
or more tenants, which are individual, isolated deployments of the ZenML server.
htahir1 marked this conversation as resolved.
Show resolved Hide resolved

Every user in an organization has a distinct role. Each role configures what
they can view, modify, and their level of involvement in collaborative tasks. A
role thus helps determine the level of access that a user has within an
organization.

The `admin` has all permissions on an organization. They are allowed to add
members, adjust the billing information and assign roles. The `editor` can still
fully manage tenants and members but is not allowed to access the subscription
information or delete the organization. The `viewer` Role allows you to allow
users to access the tenants within the organization with no real permissions in
the Cloud Control Plane. 
htahir1 marked this conversation as resolved.
Show resolved Hide resolved

### Inviting Team Members
htahir1 marked this conversation as resolved.
Show resolved Hide resolved

Inviting users to your organization to work on the organization's tenants is
easy. Simply click `Add Member` in the Organization settings, and give them an
initial Role. The User will be sent an invitation email. If a user is part of an
organization, they can utilize their login on all tenants they have authority to
access.

### Using the ZenML CLI to connect to a Tenant
htahir1 marked this conversation as resolved.
Show resolved Hide resolved

ZenML Cloud uses the Command Line Interface (CLI) to connect to a tenant. This
can be executed with the command:

```bash
zenml connect --url https://...
```

This command will initiate a browser device flow. Users can choose whether to
mark their respective device as trusted or not. If you choose not to
click `Trust this device`, a 24-hour token will be issued for authentication
services. Choosing to trust the device will issue a 30-day token instead.

To see all devices you've permitted, use the following command:

```bash
zenml authorized-device list
```

Additionally, the following command allows you to more precisely inspect one of
these devices:

```bash
zenml authorized-device describe <DEVICE_ID>
```

For increased security, you can invalidate a token using the `zenml device lock`
command followed by the device ID. This helps provide an extra layer of security
and control over your devices.

```
zenml authorized-device lock <DEVICE_ID>
```

To keep things simple, we can summarize the steps:

1. Use the `zenml connect --url` command to start a device flow and connect to a
tenant.
2. Choose whether to trust the device when prompted.
3. Check permitted devices with `zenml devices list`.
4. Invalidate a token with `zenml device lock ...`.

#### Please remember:
htahir1 marked this conversation as resolved.
Show resolved Hide resolved

Using the ZenML CLI is a secure and comfortable way to interact with your zenml
tenants. It's important to always ensure that only trusted devices are used to
maintain security and privacy.

Don't forget to manage your device trust levels regularly for optimal security.
Should you feel a device trust needs to be revoked, lock the device immediately.
Every token issued is a potential gateway to access your data, secrets and
infrastructure.

### Device-to-device authentication

{% hint style="info" %}
We are actively developing low privilege service accounts and will update this
when they are implemented. For the time being all workloads (like for example a
pipeline run) will get an irrevocable API Token that is valid for 24h - please
reach out to us in case longer-lasting tokens are needed for your Tenants.
{% endhint %}
2 changes: 1 addition & 1 deletion docs/book/toc.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,8 @@
## Deploying ZenML

* [☁ ZenML Cloud](deploying-zenml/zenml-cloud/zenml-cloud.md)
* [User Management](deploying-zenml/zenml-cloud/user-management.md)
* [System Architecture](deploying-zenml/zenml-cloud/cloud-system-architecture.md)
* [Get started](deploying-zenml/zenml-cloud/get-started.md)
* [🔧 ZenML Self-Hosted](deploying-zenml/zenml-self-hosted/zenml-self-hosted.md)
* [Deploy with ZenML CLI](deploying-zenml/zenml-self-hosted/deploy-with-zenml-cli.md)
* [Deploy with Docker](deploying-zenml/zenml-self-hosted/deploy-with-docker.md)
Expand Down