There's a bit of a mismatch between Spark and Polaris terminology as illustrated below:
| Spark | Polaris |
| spark.sql.catalog.[CATALOG_NAME].warehouse | catalog |
| namespace | no equivalent |
| no equivalent | namespace |
Polaris CLI
The main areas in Polaris (at least as far as the CLI is concerned) are:
A catalog has a catalog-role.
A principle has a principle-role.
The two roles are associated.
The catalog/catalog-role pairing has a number of CatalogPrivileges associated with it and these dictate what can be done (table creation, read, write etc)
Clouds
Azure
Create an App and assign it to the resource group your container ("bucket") lives in.
Give this App's login details to Polaris as environment variables and the AppName to the Polaris catalog.
GCP
Create a service account and grant yourself the permission to use it to create tokens. Create an Application Default Credentials (ADC) JSON file for your user but this allows the app to mint access tokens as the service account.
Give Polaris the path to this ADC file as an environment variable.
(Note, I had to up the version of my Polaris to avoid this bug).
AWS
Create a role whose role policy allows users to assume it. Attach the policy allowing access to S3 to that role.
Give your own AWS credentials to Polaris as environment variables.