Gerenciando o Acesso a Tabelas do Oracle NoSQL Database Cloud Service
Learn about writing policies and viewing typical policy statements that you might use to authorize access to Oracle NoSQL Database Cloud Service tables.
Este artigo tem os seguintes tópicos:
Acessando Tabelas NoSQL em Tenancies
Este tópico descreve como criar políticas que permitam à sua tenancy acessar Tabelas NoSQL em outras tenancies.
Se você não conhece as políticas, consulte Conceitos Básicos de Políticas.
Políticas entre Tenancies
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 sua empresa 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 tenancies 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 Define, Endorse e Admit.
Instruções Endorse, Admit e Define
Veja a seguir uma visão geral dos verbos especiais usados em instruções entre tenancies:
Endossar: Informa o conjunto geral de habilidades que um grupo da sua própria tenancy pode executar em outras tenancies. A instrução Endorse sempre pertence à tenancy com o grupo de usuários cruzando os limites da outra tenancy para trabalhar com os recursos dessa tenancy. Nos exemplos, você se refere a essa tenancy como a origem.
Admissão: declara 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 "admitância" à tenancy. A instrução Admit identifica o grupo de usuários que requer acesso de recurso da tenancy da origem e identificado com uma instrução Endorse correspondente. Nos exemplos, você se refere a essa tenancy como o destino.
Definir: Designa um apelido a um OCID de tenancy para instruções da política Endossar e Admitir. Uma instrução Definir também é obrigatória na tenancy de destino para designar um alias ao OCID do grupo do IAM de origem para instruções de Admissão.
As instruções Define devem ser incluídas na mesma entidade de política que a instrução endorse ou admit. As instruções Endorse e Admit funcionam juntas, mas elas residem em políticas separadas, uma em cada tenancy. Sem uma instrução correspondente que especifique acesso, uma determinada instrução Endorse ou Admit 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 na região para compartilhar recursos entre regiões.
Instruções da política da tenancy de origem
O Administrador de Origem cria instruções da política que aprovam um grupo do IAM de origem com permissão para gerenciar recursos na tenancy de destino.
Observação: As políticas entre tenancies também podem ser gravadas 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.
Este é um exemplo de uma declaração ampla de política que endossa o grupo NoSQLAdmins 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 um exemplo de instruções de política que endossam o grupo NoSQLAdmins do IAM para gerenciar NoSQL Tables apenas na 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:
-
Define a tenancy de origem e grupo do serviço IAM que tem permissão para acessar recursos na sua tenancy. O administrador de origem deve fornecer essas informações.
-
Admite as origens definidas para acessar Tabelas NoSQL às quais você deseja permitir acesso na sua tenancy.
Veja um exemplo de instruções de política que endossam o grupo NoSQLAdmins do IAM na tenancy da origem para fazer qualquer coisa 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
Veja um exemplo de instruções de política que endossam o grupo NoSQLAdmins do IAM 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
Concedendo a Outro Usuário Permissão para Gerenciar Tabelas do NoSQL
Quando você ativa seu pedido para o Oracle NoSQL Database Cloud Service, você (o primeiro usuário) está no grupo Administradores por padrão. Estar no grupo Administradores fornece privilégios de administração total no Oracle Cloud Infrastructure para que você possa gerenciar tabelas do Oracle NoSQL Database Cloud Service e muito mais. Não há necessidade de delegar essa responsabilidade, mas, se quiser, você pode 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 as políticas do IAM para conceder permissões. Primeiro, você deve adicionar o usuário a um grupo e depois 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 saber como criar instruções de políticas de segurança especificamente para o Oracle NoSQL Database Cloud Service, consulte Configurando Usuários, Grupos e Políticas Usando o Identity and Access Management.
Instruções de Política Típicas 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. Como alternativa, você pode restringir o acesso a tabelas ou compartimentos individuais do Oracle NoSQL Database Cloud Service.
Exemplo - Para permitir que o grupo de Administradores gerencie totalmente 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 nas Tabelas NoSQL no compartimento Dev, use o tipo de recurso de família.
allow group Admins to manage nosql-family in compartment Dev
Exemplo - Para permitir ao grupo Analytics executar operações somente leitura nas Tabelas NoSQL no compartimento Dev
allow group Analytics to read nosql-rows in compartment Dev
Exemplo - Para permitir apenas que Joe no Developer 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 os Administradores do grupo criem, elimine e mova Tabelas NoSQL apenas, mas não altere no Dev do compartimento.
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 grupo Desenvolvedor leia, atualize e exclua linhas de "cliente" da tabela no compartimento Desenvolvimento, mas não em outras.
allow group Developer to manage nosql-rows in compartment Dev
where target.nosql-table.name = 'customer'