Skip to content

Commit 0b21956

Browse files
Updating docs/overview.md and docs/access-control.md (#105)
1 parent 8f6f733 commit 0b21956

File tree

4 files changed

+503
-546
lines changed

4 files changed

+503
-546
lines changed

docs/access-control.md

Lines changed: 64 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -18,25 +18,25 @@
1818

1919
This section provides information about how access control works for Polaris Catalog.
2020

21-
Polaris Catalog uses a role-based access control (RBAC) model, in which the Polaris administrator assigns access privileges to catalog roles,
22-
and then grants service principals access to resources by assigning catalog roles to principal roles.
21+
Polaris Catalog uses a role-based access control (RBAC) model in which the Polaris administrator assigns access privileges to catalog roles
22+
and then grants access to resources to service principals by assigning catalog roles to principal roles.
2323

24-
The key concepts to understanding access control in Polaris are:
24+
These are the key concepts to understanding access control in Polaris:
2525

26-
- **Securable object**
27-
- **Principal role**
28-
- **Catalog role**
29-
- **Privilege**
26+
- **Securable object**
27+
- **Principal role**
28+
- **Catalog role**
29+
- **Privilege**
3030

3131
## Securable object
3232

3333
A securable object is an object to which access can be granted. Polaris
3434
has the following securable objects:
3535

36-
- Catalog
37-
- Namespace
38-
- Iceberg table
39-
- View
36+
- Catalog
37+
- Namespace
38+
- Iceberg table
39+
- View
4040

4141
## Principal role
4242

@@ -60,17 +60,17 @@ The following table shows examples of principal roles that you might configure i
6060

6161
## Catalog role
6262

63-
A catalog role belongs to a particular catalog resource in Polaris and specifies a set of permissions for actions on the catalog, or on objects
63+
A catalog role belongs to a particular catalog resource in Polaris and specifies a set of permissions for actions on the catalog or objects
6464
in the catalog, such as catalog namespaces or tables. You can create one or more catalog roles for a catalog.
6565

66-
You grant privileges to a catalog role, and then grant the catalog role to a principal role to bestow the privileges to one or more service
66+
You grant privileges to a catalog role and then grant the catalog role to a principal role to bestow the privileges to one or more service
6767
principals.
6868

69-
**Note**
70-
71-
If you update the privileges bestowed to a service principal, the updates won\'t take effect for up to one hour. This means that if you
72-
revoke or grant some privileges for a catalog, the updated privileges won\'t take effect on any service principal with access to that catalog
73-
for up to one hour.
69+
> **Note**
70+
>
71+
> If you update the privileges bestowed to a service principal, the updates won't take effect for up to one hour. This means that if you
72+
> revoke or grant some privileges for a catalog, the updated privileges won't take effect on any service principal with access to that catalog
73+
> for up to one hour.
7474
7575
Polaris also supports a many-to-many relationship between catalog roles and principal roles. You can grant the same catalog role to one or more
7676
principal roles. Likewise, a principal role can be granted to one or more catalog roles.
@@ -87,102 +87,101 @@ configure in Polaris:
8787
## RBAC model
8888

8989
The following diagram illustrates the RBAC model used by Polaris Catalog. For each catalog, the Polaris administrator assigns access
90-
privileges to catalog roles, and then grants service principals access to resources by assigning catalog roles to principal roles. Polaris
90+
privileges to catalog roles and then grants service principals access to resources by assigning catalog roles to principal roles. Polaris
9191
supports a many-to-one relationship between service principals and principal roles.
9292

93-
![Diagram that shows the RBAC model for Polaris Catalog.](./img/rbac-model.svg "Polaris Catalog RBAC model")
93+
![Diagram that shows the RBAC model for Polaris Catalog.](img/rbac-model.svg "Polaris Catalog RBAC model")
9494

9595
## Access control privileges
9696

9797
This section describes the privileges that are available in the Polaris access control model. Privileges are granted to catalog roles, catalog
9898
roles are granted to principal roles, and principal roles are granted to service principals to specify the operations that service principals can
9999
perform on objects in Polaris.
100100

101+
> **Important**
102+
>
103+
> You can only grant privileges at the catalog level. Fine-grained access controls are not available. For example, you can grant read
104+
> privileges to all tables in a catalog but not to an individual table in the catalog.
105+
101106
To grant the full set of privileges (drop, list, read, write, etc.) on an object, you can use the *full privilege* option.
102107

103108
### Table privileges
104109

105-
**Note**
106-
107-
The TABLE_FULL_METADATA full privilege doesn't grant access to the TABLE_READ_DATA or TABLE_WRITE_DATA individual privileges.
108-
109-
| Full privilege | Individual privilege | Description |
110-
| -----------------------| ----------- | ---- |
111-
| TABLE_FULL_METADATA | TABLE_CREATE | Enables registering a table with the catalog. |
112-
| | TABLE_DROP | Enables dropping a table from the catalog. |
113-
| | TABLE_LIST | Enables listing any tables in the catalog. |
114-
| | TABLE_READ_PROPERTIES | Enables reading [properties](https://iceberg.apache.org/docs/nightly/configuration/#table-properties) of the table. |
115-
| | TABLE_WRITE_PROPERTIES | Enables configuring [properties](https://iceberg.apache.org/docs/nightly/configuration/#table-properties) for the table. |
116-
| N/A | TABLE_READ_DATA | Enables reading data from the table by receiving short-lived read-only storage credentials from the catalog. |
117-
| N/A | TABLE_WRITE_DATA | Enables writing data to the table by receiving short-lived read+write storage credentials from the catalog. |
110+
| Privilege | Description |
111+
| --------- | ----------- |
112+
| TABLE_CREATE | Enables registering a table with the catalog. |
113+
| TABLE_DROP | Enables dropping a table from the catalog. |
114+
| TABLE_LIST | Enables listing any tables in the catalog. |
115+
| TABLE_READ_PROPERTIES | Enables reading [properties](https://iceberg.apache.org/docs/nightly/configuration/#table-properties) of the table. |
116+
| TABLE_WRITE_PROPERTIES | Enables configuring [properties](https://iceberg.apache.org/docs/nightly/configuration/#table-properties) for the table. |
117+
| TABLE_READ_DATA | Enables reading data from the table by receiving short-lived read-only storage credentials from the catalog. |
118+
| TABLE_WRITE_DATA | Enables writing data to the table by receiving short-lived read+write storage credentials from the catalog. |
119+
| TABLE_FULL_METADATA | Grants all table privileges, except TABLE_READ_DATA and TABLE_WRITE_DATA, which need to be granted individually. |
118120

119121
### View privileges
120122

121-
| Full privilege | Individual privilege | Description |
122-
| -----------------------| ----------- | ---- |
123-
| VIEW_FULL_METADATA | VIEW_CREATE | Enables registering a view with the catalog. |
124-
| | VIEW_DROP | Enables dropping a view from the catalog. |
125-
| | VIEW_LIST | Enables listing any views in the catalog. |
126-
| | VIEW_READ_PROPERTIES | Enables reading all the view properties. |
127-
| | VIEW_WRITE_PROPERTIES | Enables configuring view properties. |
123+
| Privilege | Description |
124+
| --------- | ----------- |
125+
| VIEW_CREATE | Enables registering a view with the catalog. |
126+
| VIEW_DROP | Enables dropping a view from the catalog. |
127+
| VIEW_LIST | Enables listing any views in the catalog. |
128+
| VIEW_READ_PROPERTIES | Enables reading all the view properties. |
129+
| VIEW_WRITE_PROPERTIES | Enables configuring view properties. |
130+
| VIEW_FULL_METADATA | Grants all view privileges. |
128131

129132
### Namespace privileges
130133

131-
| Full privilege | Individual privilege | Description |
132-
| -----------------------| ----------- | ---- |
133-
| NAMESPACE_FULL_METADATA | NAMESPACE_CREATE | Enables creating a namespace in a catalog. |
134-
| | NAMESPACE_DROP | Enables dropping the namespace from the catalog. |
135-
| | NAMESPACE_LIST | Enables listing any object in the namespace, including nested namespaces and tables. |
136-
| | NAMESPACE_READ_PROPERTIES | Enables reading all the namespace properties. |
137-
| | NAMESPACE_WRITE_PROPERTIES | Enables configuring namespace properties. |
134+
| Privilege | Description |
135+
| --------- | ----------- |
136+
| NAMESPACE_CREATE | Enables creating a namespace in a catalog. |
137+
| NAMESPACE_DROP | Enables dropping the namespace from the catalog. |
138+
| NAMESPACE_LIST | Enables listing any object in the namespace, including nested namespaces and tables. |
139+
| NAMESPACE_READ_PROPERTIES | Enables reading all the namespace properties. |
140+
| NAMESPACE_WRITE_PROPERTIES | Enables configuring namespace properties. |
141+
| NAMESPACE_FULL_METADATA | Grants all namespace privileges. |
138142

139143
### Catalog privileges
140144

141145
| Privilege | Description |
142146
| -----------------------| ----------- |
143147
| CATALOG_MANAGE_ACCESS | Includes the ability to grant or revoke privileges on objects in a catalog to catalog roles, and the ability to grant or revoke catalog roles to or from principal roles. |
144148
| CATALOG_MANAGE_CONTENT | Enables full management of content for the catalog. This privilege encompasses the following privileges:<ul><li>CATALOG_MANAGE_METADATA</li><li>TABLE_FULL_METADATA</li><li>NAMESPACE_FULL_METADATA</li><li>VIEW_FULL_METADATA</li><li>TABLE_WRITE_DATA</li><li>TABLE_READ_DATA</li><li>CATALOG_READ_PROPERTIES</li><li>CATALOG_WRITE_PROPERTIES</li></ul> |
145-
| CATALOG_MANAGE_METADATA | Enables full management of the catalog, as well as catalog roles, namespaces, and tables. |
149+
| CATALOG_MANAGE_METADATA | Enables full management of the catalog, catalog roles, namespaces, and tables. |
146150
| CATALOG_READ_PROPERTIES | Enables listing catalogs and reading properties of the catalog. |
147151
| CATALOG_WRITE_PROPERTIES | Enables configuring catalog properties. |
148152

149153
## RBAC example
150154

151-
The following diagram illustrates how RBAC works in Polaris, and
155+
The following diagram illustrates how RBAC works in Polaris and
152156
includes the following users:
153157

154-
- **Alice**: A service admin who signs up for Polaris. Alice can
158+
- **Alice:** A service admin who signs up for Polaris. Alice can
155159
create service principals. She can also create catalogs and
156-
namespaces, and configure access control for Polaris resources.
157-
158-
> **Note**
159-
>
160-
> The service principal for Alice is not visible in the Polaris Catalog
161-
> user interface.
160+
namespaces and configure access control for Polaris resources.
162161

163-
- **Bob**: A data engineer who uses Snowpipe Streaming (in Snowflake)
164-
and Apache Spark connections to interact with Polaris.
162+
- **Bob:** A data engineer who uses Snowpipe Streaming (in Snowflake)
163+
and Apache Spark&trade; connections to interact with Polaris.
165164

166-
- Alice has created a service principal for Bob. It has been
165+
- Alice has created a service principal for Bob. It has been
167166
granted the Data_engineer principal role, which in turn has been
168167
granted the following catalog roles: Catalog contributor and
169168
Data administrator (for both the Silver and Gold zone catalogs
170169
in the following diagram).
171170

172-
- The Catalog contributor role grants permission to create
171+
- The Catalog contributor role grants permission to create
173172
namespaces and tables in the Bronze zone catalog.
174173

175-
- The Data administrator roles grant full administrative rights to
174+
- The Data administrator roles grant full administrative rights to
176175
the Silver zone catalog and Gold zone catalog.
177176

178-
- **Mark**: A data scientist who uses Snowflake AI services to
177+
- **Mark:** A data scientist who uses Snowflake AI services to
179178
interact with Polaris.
180179

181-
- Alice has created a service principal for Mark. It has been
180+
- Alice has created a service principal for Mark. It has been
182181
granted the Data_scientist principal role, which in turn has
183182
been granted the catalog role named Catalog reader.
184183

185-
- The Catalog reader role grants read-only access for a catalog
184+
- The Catalog reader role grants read-only access for a catalog
186185
named Gold zone catalog.
187186

188-
![Diagram that shows an example of how RBAC works in Polaris Catalog.](./img/rbac-example.svg "Polaris Catalog RBAC example")
187+
![Diagram that shows an example of how RBAC works in Polaris Catalog.](img/rbac-example.svg "Polaris Catalog RBAC example")

docs/index.html

Lines changed: 202 additions & 242 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)