Skip to main content
Version: Preview

Access control

On Marmot Cloud you grant a role to a person, team or service account on one resource, so an agent's service account can be granted the 3 assets it should see and reach nothing else.

How it works​

A grant reaches the resource it's made on and everything under it. A source is a pipeline that answers data queries, and its tables sit under it:

  • Grants inherit downwards. A grant on the whole catalog covers everything. A grant on a data product covers its assets, including ones that match its rules later. A grant on a glossary term covers the terms under it, and a grant on a source covers every table it serves.
  • Grants add up. There are no deny rules, so keep catalog-wide grants narrow and lower the base role to keep something from most people.
  • Grants can end. A grant with an end date stops working then. Marmot warns the holder and the people who manage access on the resource 7 days before, and removes the ended grant 30 days later.

Roles assigned under Settings → Members or on a service account, including the base role a new user gets, are catalog-wide grants.

Members​

A member is user:<id>, group:<team-id>, serviceAccount:<id> or allAuthenticated (everyone who can sign in). Grant to teams rather than people, and let single sign-on keep teams in step with your directory.

Roles​

Write permissions are checked across the whole catalog, so editing and administration roles only take effect there. These roles can also be granted lower down:

RoleGivesGrant on
catalog.viewerRead assets, data products and the glossary.Data product, asset, glossary term
catalog.accessAdmincatalog.viewer, plus deciding who else has access.Data product, asset, glossary term
iam.viewer, iam.adminRead, or change, who has access.Data product, asset, glossary term
asset.viewerAssets and their lineage neighbours, without data.Data product, asset
asset.dataQuerierasset.viewer, plus read-only queries.Data product, asset, source
dataProduct.viewerA data product and its assets.Data product
glossary.viewerGlossary terms.Glossary term
secretStore.viewerA store and its secrets, without values.Secret store
secretStore.usersecretStore.viewer, plus attaching secrets to pipelines.Secret store
secretStore.readersecretStore.viewer, plus reading values.Secret store

Every role can be granted across the whole catalog, including admin, editor (create and edit catalog content and pipelines), user (read the catalog, the base role for new users), access.viewer (the query log and query insights), access.admin (also choosing which sources answer queries) and catalog.none (nothing). Control who can query data covers the query roles.

Grant asset.viewer widely and asset.dataQuerier narrowly. Pipeline authors need secretStore.user, and almost nobody needs secretStore.reader or secretStore.admin, which can both read values.

Settings → Roles lists every role and the permissions it carries:

Settings, Roles in a Marmot Cloud instance, listing the granular roles with the permissions each one carriesSettings, Roles in a Marmot Cloud instance, listing the granular roles with the permissions each one carries

Who has access​

The Access tab on a data product or asset lists what's granted on it and what reaches it from a wider scope:

The Access tab of a data product, showing nothing granted on the product itself and grants that reach it from across the catalogThe Access tab of a data product, showing nothing granted on the product itself and grants that reach it from across the catalog

To explain one member's access, use Check access.

Limitations​

  • You can't let a team edit only one data product's assets.
  • Only someone who manages access across the whole catalog can grant on a secret store or a source.
  • The Terraform provider can't grant on a source.

Next steps​