Gerenciando o Acesso a Tabelas do Oracle NoSQL Database Cloud Service

Saiba mais sobre a gravação de políticas e a exibição de instruções de políticas típicas que você pode usar para autorizar o acesso às tabelas do Oracle NoSQL Database Cloud Service.

Este artigo tem os seguintes tópicos:

Acessando Tabelas NoSQL em Tenancies

Este tópico descreve como gravar políticas que permitam que sua tenancy acesse NoSQL Tabelas em outras tenancies.

Se você não conhece as políticas, consulte Conceitos Básicos de Políticas.

Políticas Cross-Tenancy

Talvez a sua organização queira compartilhar recursos com outra organização que tenha sua própria tenancy. Pode ser outra unidade de negócios da sua empresa, um cliente da sua empresa, uma empresa que fornece serviços para ela e assim por diante. Em casos como esses, você precisa de políticas intertenancy, além das políticas necessárias de usuário e serviço descritas anteriormente.

Para acessar e compartilhar recursos, os administradores de ambas as locações precisam criar instruções de política especiais que declarem explicitamente os recursos que podem ser acessados e compartilhados. Essas instruções especiais usam as palavras Definir, Endossar e Admissão.

Instruções Endorse, Admit e Define

Veja aqui uma visão geral dos verbos especiais usados em instruções intertenancy:

Endorse: Informa o conjunto geral de habilidades que um grupo em sua própria tenancy pode executar em outras tenancies. A instrução Aprovar sempre pertence à tenancy com o grupo de usuários que cruzam os limites em outra tenancy para trabalhar com os recursos dessa tenancy. Nos exemplos, você refere-se a essa tenancy como a origem.

Admit: Indica o tipo de capacidade em sua própria tenancy que você deseja conceder a um grupo da outra tenancy. A instrução Admit pertence à tenancy que está concedendo "admissão". A instrução Admit identifica o grupo de usuários que requer acesso a recursos da tenancy de origem e identificado com uma instrução Endorse correspondente. Nos exemplos, você refere-se a essa tenancy como o destino.

Definir: Designa um alias a um OCID da tenancy para instruções de política de Endosso e Admissão. Uma instrução Define também é necessária na tenancy de destino para designar um alias ao OCID do grupo do serviço IAM de origem para instruções Admit.

As instruções Define devem ser incluídas na mesma entidade de política que a instrução endorse ou admit. As instruções Endossar e Admitir trabalham juntas, mas residem em políticas separadas, uma em cada tenancy. Sem uma instrução correspondente que especifique o acesso, uma determinada instrução de endosso ou internação não concede acesso. Você precisa de um acordo das duas tenancies.

Observação:

Além das instruções de política, você também deve estar inscrito em uma região para compartilhar recursos entre regiões.

Instruções da política da tenancy de origem

O administrador de origem cria instruções de política que aprovam um grupo do serviço IAM de origem que tem permissão para gerenciar recursos na tenancy de destino.

Observação:

As políticas de locação cruzada também podem ser escritas com outros assuntos de política. Para obter mais detalhes sobre assuntos de política, consulte Sintaxe de Política na Documentação do Oracle Cloud Infrastructure.
Aqui está um exemplo de uma instrução de política ampla que endossa o grupo NoSQLAdmins do grupo do IAM para fazer qualquer coisa com todas as Tabelas NoSQL em qualquer tenancy:
Endorse group NoSQLAdmins to manage nosql-family in any-tenancy
Para gravar uma política que reduz o escopo do acesso da tenancy, o administrador de destino deve fornecer o OCID da tenancy de destino. Veja aqui um exemplo de instrução de política que endossa o grupo NoSQLAdmins do grupo do IAM para gerenciar Tabelas NoSQL somente em DestinationTenancy:
Define tenancy DestinationTenancy as ocid1.tenancy.oc1..<destination_tenancy_OCID>
Endorse group NoSQLAdmins to manage nosql-family in tenancy DestinationTenancy

Instruções da política da tenancy de destino

O administrador de destino cria instruções de política que:
  • Definem a tenancy de origem e o grupo do IAM que tem permissão para acessar recursos em sua tenancy. O administrador de origem deve fornecer essas informações.
  • Admite essas origens definidas para acessar as Tabelas NoSQL às quais você deseja permitir acesso em sua tenancy.
Aqui está um exemplo de instruções de política que endossam o grupo NoSQLAdmins do serviço IAM na tenancy de origem para fazer nada com todas as Tabelas NoSQL em sua tenancy:
Define tenancy SourceTenancy as ocid1.tenancy.oc1..<source_tenancy_OCID>
Define group NoSQLAdmins as ocid1.group.oc1..<group_OCID>
Admit group NoSQLAdmins of tenancy SourceTenancy to manage nosql-family in tenancy
Este é um exemplo de instruções de política que endossam o grupo do IAM NoSQLAdmins na tenancy de origem para gerenciar Tabelas NoSQL somente no compartimento Desenvolver:
Define tenancy SourceTenancy as ocid1.tenancy.oc1..<source_tenancy_OCID>
Define group NoSQLAdmins as ocid1.group.oc1..<group_OCID>
Admit group NoSQLAdmins of tenancy SourceTenancy to manage nosql-family in compartment Develop

Permitindo que Outro Usuário Gerencie Tabelas NoSQL

Quando ativar o seu pedido para o Oracle NoSQL Database Cloud Service, por padrão, você (o primeiro usuário) permanecerá no grupo Administradores. Por estar no grupo Administradores, você tem privilégios totais de administração no Oracle Cloud Infrastructure para poder gerenciar tabelas do Oracle NoSQL Database Cloud Service e muito mais. Não há necessidade de delegar essa responsabilidade, mas, se quiser, você poderá conceder a alguém privilégios para criar e gerenciar tabelas do Oracle NoSQL Database Cloud Service por meio da permissão manage nosql-tables.

No Oracle Cloud Infrastructure, você usa políticas de segurança do serviço IAM para conceder permissões. Primeiro, você deve adicionar o usuário a um grupo e, em seguida, criar uma política de segurança que conceda ao grupo a permissão manage nosql-tables em um compartimento específico ou na tenancy ( qualquer compartimento na tenancy). Por exemplo, você poderia criar uma instrução de política semelhante a uma destas opções:

allow group MyAdminGroup to manage nosql-tables in tenancy
allow group MyAdminGroup to manage nosql-tables in compartment MyOracleNoSQL

Para obter mais informações sobre como criar instruções de política de segurança especificamente para o Oracle NoSQL Database Cloud Service, consulte Configurando Usuários, Grupos e Políticas com o Serviço Identity and Access Management.

Instruções típicas da política para gerenciar tabelas

Existem instruções de política típicas que você pode usar para autorizar o acesso às tabelas do Oracle NoSQL Database Cloud Service.

Quando você cria uma política para sua tenancy, concede aos usuários acesso a todos os componentes por meio da herança da política. Você também pode restringir o acesso a tabelas ou compartimentos individuais do Oracle NoSQL Database Cloud Service.

Exemplo - Para permitir que o grupo Administradores gerencie completamente qualquer tabela do Oracle NoSQL Database Cloud Service

allow group Administrators to manage nosql-tables in tenancy
allow group Administrators to manage nosql-rows in tenancy
allow group Administrators to manage nosql-indexes in tenancy

Exemplo - Para permitir que o grupo Administradores execute qualquer operação em relação a NoSQL Tabelas no compartimento Dev e use o tipo de recurso family.

allow group Admins to manage nosql-family in compartment Dev

Exemplo - Para permitir que o grupo Análise execute operações somente para leitura em Tabelas NoSQL no compartimento Dev

allow group Analytics to read nosql-rows in compartment Dev

Exemplo - Para permitir que Joe no grupo Desenvolvedor crie, obtenha e elimine índices de tabelas NoSQL no compartimento Dev

allow group Developer to manage nosql-indexes in compartment Dev 
where request.user.id = '<OCID of Joe>'

Exemplo - Para permitir que o grupo Admins crie, elimine e transfira Tabelas NoSQL somente, mas não possa fazer alterações no compartimento Dev.

allow group Admins to manage nosql-tables in compartment Dev 
where any {request.permission = 'NOSQL_TABLE_CREATE', 
           request.permission = 'NOSQL_TABLE_DROP', 
           request.permission = 'NOSQL_TABLE_MOVE'}

Exemplo - Para permitir que o desenvolvedor do grupo leia, atualize e exclua linhas da tabela "cliente" no compartimento Dev, mas não outras tabelas.

allow group Developer to manage nosql-rows in compartment Dev 
where target.nosql-table.name = 'customer'