1818
1919This 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
3333A securable object is an object to which access can be granted. Polaris
3434has 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
6464in 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
6767principals.
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
7575Polaris also supports a many-to-many relationship between catalog roles and principal roles. You can grant the same catalog role to one or more
7676principal 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
8989The 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
9191supports 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
9797This section describes the privileges that are available in the Polaris access control model. Privileges are granted to catalog roles, catalog
9898roles are granted to principal roles, and principal roles are granted to service principals to specify the operations that service principals can
9999perform 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+
101106To 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
152156includes 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 ")
0 commit comments