Controle de acesso com o IAM

Neste documento, descrevemos as opções de controle de acesso disponíveis no Secret Manager.

Atribuir papéis do IAM

O Secret Manager usa o Identity and Access Management (IAM) para controle de acesso. Para criar, gerenciar, listar ou acessar um secret, as permissões apropriadas do IAM precisam ser concedidas no nível do projeto e no nível de recurso individual. É possível conceder um ou mais papéis predefinidos ou criar e conceder papéis personalizados. Não é possível atribuir papéis de IAM em uma versão do secret.

Para adicionar um papel, faça o seguinte:

  1. Acesse a página IAM no Console do Google Cloud.

    Acessar IAM

  2. Clique na lista Seletor de projetos na parte de cima da página.

  3. Na caixa de diálogo Selecionar de exibida, selecione a organização em que você quer ativar o Secret Manager.

  4. Na página IAM, ao lado do seu nome de usuário, clique em Editar.

  5. No painel Editar permissões que aparece, adicione os papéis necessários.

    1. Clique em Adicionar outro papel. Selecione um papel para adicionar, como Acessador de secrets do Secret Manager.

    2. Para adicionar mais papéis, repita a etapa anterior. Clique em Save.

Os papéis de gerenciamento de identidade e acesso (IAM) determinam como usar a API Secret Manager. A tabela a seguir lista cada papel do IAM disponível para o Secret Manager e os recursos concedidos a esse papel.

Role Permissions

(roles/secretmanager.admin)

Full access to administer Secret Manager resources.

Lowest-level resources where you can grant this role:

  • Secret

resourcemanager.projects.get

resourcemanager.projects.list

secretmanager.*

  • secretmanager.locations.get
  • secretmanager.locations.list
  • secretmanager.secrets.create
  • secretmanager.secrets.createTagBinding
  • secretmanager.secrets.delete
  • secretmanager.secrets.deleteTagBinding
  • secretmanager.secrets.get
  • secretmanager.secrets.getIamPolicy
  • secretmanager.secrets.list
  • secretmanager.secrets.listEffectiveTags
  • secretmanager.secrets.listTagBindings
  • secretmanager.secrets.setIamPolicy
  • secretmanager.secrets.update
  • secretmanager.versions.access
  • secretmanager.versions.add
  • secretmanager.versions.destroy
  • secretmanager.versions.disable
  • secretmanager.versions.enable
  • secretmanager.versions.get
  • secretmanager.versions.list

(roles/secretmanager.secretAccessor)

Allows accessing the payload of secrets.

Lowest-level resources where you can grant this role:

  • Secret

resourcemanager.projects.get

resourcemanager.projects.list

secretmanager.versions.access

(roles/secretmanager.secretVersionAdder)

Allows adding versions to existing secrets.

Lowest-level resources where you can grant this role:

  • Secret

resourcemanager.projects.get

resourcemanager.projects.list

secretmanager.versions.add

(roles/secretmanager.secretVersionManager)

Allows creating and managing versions of existing secrets.

Lowest-level resources where you can grant this role:

  • Secret

resourcemanager.projects.get

resourcemanager.projects.list

secretmanager.versions.add

secretmanager.versions.destroy

secretmanager.versions.disable

secretmanager.versions.enable

secretmanager.versions.get

secretmanager.versions.list

(roles/secretmanager.viewer)

Allows viewing metadata of all Secret Manager resources

Lowest-level resources where you can grant this role:

  • Secret

resourcemanager.projects.get

resourcemanager.projects.list

secretmanager.locations.*

  • secretmanager.locations.get
  • secretmanager.locations.list

secretmanager.secrets.get

secretmanager.secrets.getIamPolicy

secretmanager.secrets.list

secretmanager.secrets.listEffectiveTags

secretmanager.secrets.listTagBindings

secretmanager.versions.get

secretmanager.versions.list

Princípios de menor privilégio

Ao seguir o princípio de privilégio mínimo, você concede o nível mínimo de acesso a recursos necessários para executar uma determinada tarefa. Por exemplo, se um principal precisar acessar um único secret, não conceda a ele acesso a outros secrets ou a todos os secrets do projeto ou da organização. Se um principal só precisar ler um secret, não conceda a ele a capacidade de modificá-lo.

Use o IAM para conceder papéis e permissões do IAM no nível do secret, projeto, pasta ou organização do Google Cloud. Sempre aplique permissões no nível mais baixo na hierarquia de recursos.

A tabela a seguir mostra os recursos eficazes de uma conta de serviço, com base no nível da hierarquia de recursos em que o papel Acessador de secrets do Secret Manager (roles/secretmanager.secretAccessor) é concedido.

Hierarquia de recursos Capacidade
Secret Acessar apenas o secret
Projeto Acessar todos os secrets no projeto
Pasta Acessar todas as chaves secretas em todos os projetos na pasta
Organização Acessar todas as chaves secretas em todos os projetos da organização

Se um principal só precisar acessar o valor de um único secret, não conceda a ele o acesso a todos os secrets. Por exemplo, é possível conceder a uma conta de serviço o papel de "Acessador de secret do Secret Manager" (roles/secretmanager.secretAccessor) em um único secret.

Se um principal só precisar gerenciar um único secret, não conceda a esse principal a capacidade de gerenciar todos os secrets. Por exemplo, é possível conceder a uma conta de serviço o papel Administrador do Secret Manager (roles/secretmanager.admin) em um único secret.

Condições do IAM

As condições do IAM permitem definir e aplicar o controle de acesso condicional e baseado em atributos para alguns recursos do Google Cloud, incluindo os recursos do Secret Manager.

No Secret Manager, é possível impor o acesso condicional com base nos seguintes atributos:

  • Atributos de data/hora: use para definir o acesso expirável, programado ou de duração limitada aos recursos do Secret Manager. Por exemplo, é possível permitir que um usuário acesse um secret até uma data especificada.
  • Atributos de recurso: use para configurar o acesso condicional com base em nome, tipo de recurso ou atributos de serviço de recurso. No Secret Manager, use atributos de secrets e versões de secrets para configurar o acesso condicional. Por exemplo, é possível permitir que um usuário gerencie versões de secret somente em secrets que comecem com um prefixo específico ou permitam que um usuário acesse apenas uma versão específica do secret.

Para mais informações sobre as condições do IAM, consulte a Visão geral das condições.

A seguir