Políticas para Controlar o Acesso ao Repositório

Descubra como configurar políticas para controlar o acesso a repositórios no Container Registry, juntamente com alguns exemplos de políticas comuns.

Você tem controle refinado sobre as operações que os usuários podem executar nos repositórios do Oracle Cloud Infrastructure Registry (também conhecido como Container Registry).

As permissões de um usuário para acessar repositórios são provenientes dos grupos aos quais ele pertence. As permissões para um grupo são definidas por políticas de identidade. As políticas definem quais ações os membros de um grupo podem executar. Os usuários acessam repositórios e executam operações com base nas políticas definidas para os grupos dos quais são membros. As políticas de identidade para controlar o acesso ao repositório podem ser definidas na tenancy e no nível do compartimento. Consulte Detalhes do Container Registry.

Antes de controlar o acesso aos repositórios, você já deverá ter criado usuários e os colocado em grupos apropriados (consulte Gerenciando Usuários e Gerenciando Grupos). Em seguida, você pode criar políticas e instruções de políticas para controlar o acesso ao repositório (consulte Gerenciando Políticas).

Observe que os usuários no grupo Administradores da tenancy podem executar qualquer operação em qualquer repositório do Container Registry que pertence à tenancy.

Políticas Comuns

Observação

As políticas nesta seção usam nomes de grupo de exemplo, da seguinte forma:

  • acme-viewers: Um grupo que você deseja limitar para apenas visualizar uma lista de repositórios.
  • acme-pullers: Um grupo que você deseja limitar para extrair imagens.
  • acme-pushers: Um grupo que você deseja permitir o envio e a extração de imagens.
  • acme-managers: Um grupo que você deseja permitir ações como enviar e extrair imagens, excluir repositórios e editar metadados do repositório (por exemplo, para tornar um repositório privado público).

Substitua os nomes dos grupos de exemplo pelos nomes dos seus próprios grupos.

Permitir que os usuários exibam uma lista de todos os repositórios pertencentes à tenancy ou a um compartimento

Tipo de acesso: Capacidade de ver uma lista de todos os repositórios no serviço Container Registry pertencente à tenancy (ou a um compartimento específico). Os usuários não poderão:

  • exibir as imagens ou camadas em um repositório
  • enviar ou extrair imagens de ou para um repositório

Onde criar a política:

  • Na tenancy. Por exemplo:

    Allow group acme-viewers to inspect repos in tenancy
  • Na tenancy ou em um compartimento. Por exemplo:

    Allow group acme-viewers to inspect repos in compartment acme-compartment
Permitir que os usuários extraiam imagens de qualquer repositório pertencente à tenancy ou a um compartimento

Tipo de acesso: Capacidade de extrair imagens (camadas e manifestos) de qualquer repositório no Container Registry que pertençam à tenancy (ou a um compartimento específico).

Onde criar a política:

  • Na tenancy. Por exemplo:

    Allow group acme-pullers to read repos in tenancy
  • Na tenancy ou em um compartimento. Por exemplo:

    Allow group acme-pullers to read repos in compartment acme-compartment
Permitir que os usuários extraiam imagens de repositórios específicos na tenancy ou em um compartimento

Tipo de acesso: Capacidade de extrair imagens (camadas e manifestos) de qualquer repositório no Container Registry que tenham um nome que comece com "acme-web-app" e que pertençam à tenancy (ou que pertençam a um compartimento específico).

Onde criar a política:

  • Na tenancy. Por exemplo:

    Allow group acme-pullers to read repos in tenancy where all { target.repo.name=/acme-web-app*/ }
  • Na tenancy ou em um compartimento. Por exemplo:

    Allow group acme-pullers to read repos in compartment acme-compartment where all { target.repo.name=/acme-web-app*/ }
Permitir que os usuários enviem imagens para quaisquer repositórios (e criem novos repositórios, se necessário) na tenancy ou em um compartimento

Tipo de acesso: Capacidade de enviar imagens (camadas e manifestos) para qualquer repositório no Container Registry que pertença à tenancy ou a um compartimento específico.

Os usuários sempre exigem as permissões REPOSITORY_READ e REPOSITORY_UPDATE para enviar imagens. Se o repositório especificado ainda não existir, os usuários também exigirão a permissão REPOSITORY_CREATE para criar um novo repositório no compartimento raiz da tenancy quando enviarem a imagem. Para obter mais informações sobre esse cenário incomum, consulte Criando um Repositório.

Onde criar a política:

  • Na tenancy. Por exemplo:

    Allow group acme-pushers to manage repos in tenancy

    Se você considerar o exemplo anterior muito permissivo (já que ele inclui as permissões REPOSITORY_MANAGE e REPOSITORY_DELETE, que não são necessárias para enviar imagens), poderá restringir as permissões para especificar explicitamente as permissões que deseja conceder. Por exemplo:

    Allow group acme-pushers to manage repos in tenancy where ANY {request.permission = 'REPOSITORY_READ', request.permission = 'REPOSITORY_UPDATE', request.permission = 'REPOSITORY_CREATE'}
  • Na tenancy ou em um compartimento. Por exemplo, em um compartimento:

    Allow group acme-pushers to manage repos in compartment acme-compartment

    Observe que, se você criar a política em um compartimento diferente do compartimento raiz, conforme mostrado acima, os usuários não poderão enviar uma imagem para um repositório que ainda não existe. Isso ocorre porque a política acima não concede aos usuários permissão para criar um novo repositório no compartimento raiz da tenancy. Para obter mais informações sobre esse cenário incomum, consulte Criando um Repositório.

Permitir que os gerentes executem qualquer operação em qualquer repositório pertencente à tenancy ou a um compartimento

Tipo de acesso: Capacidade de executar qualquer operação em qualquer repositório no Container Registry que pertença à tenancy (ou a um compartimento específico), incluindo:

  • Extrair uma imagem de qualquer repositório.
  • Envie uma imagem para qualquer repositório.
  • Crie um novo repositório. Ou seja, para criar um repositório vazio em qualquer compartimento ou para criar um repositório no compartimento raiz da tenancy ao enviar uma imagem para a qual ainda não existe nenhum repositório. Observe que, se você criar a política em um compartimento diferente do compartimento raiz, os usuários não poderão enviar uma imagem para um repositório que ainda não existe. Isso ocorre porque a política não concede aos usuários permissão para criar um novo repositório no compartimento raiz. Para obter mais informações sobre esse cenário incomum, consulte Criando um Repositório.
  • Excluir um repositório.
  • Altere um repositório público para um repositório privado ou um repositório privado para um repositório público.

Onde criar a política:

  • Na tenancy. Por exemplo:

    Allow group acme-managers to manage repos in tenancy
  • Na tenancy ou em um compartimento. Por exemplo:

    Allow group acme-managers to manage repos in compartment acme-compartment

    Observe que, se você criar a política acima em um compartimento diferente do compartimento raiz, os usuários não poderão enviar uma imagem para um repositório que ainda não existe. Isso ocorre porque a política não concede aos usuários permissão para criar um novo repositório no compartimento raiz. Para obter mais informações sobre esse cenário incomum, consulte Criando um Repositório.