Exemplos de Política de Segurança

Saiba como usar políticas para criar administradores de nível de serviço para privilégio mínimo, restringir a capacidade dos administradores de alterar a associação do grupo de administradores da tenancy e impedir que os administradores excluam ou atualizem políticas de segurança, bem como impedi-los de acessar ou alterar credenciais do usuário.

Há exemplos de políticas comuns de segurança do IAM disponíveis em Políticas Comuns. Em todos os exemplos a seguir, as políticas têm uma tenancy como escopo. Porém, ao determinar um nome de compartimento, você pode reduzir o escopo das políticas a compartimentos específicos em uma tenancy.

Criar Administradores em Nível de Serviço com Privilégios Mínimos

Para implementar um princípio de segurança de privilégio mínimo, você pode criar administradores em nível de serviço na tenancy para restringir ainda mais o acesso administrativo. Isso significa que os administradores em nível de serviço só podem gerenciar recursos de um serviço específico. Por exemplo, os administradores de rede precisam de acesso administrativo (manage) somente em relação a recursos da VCN e não precisam acessar outros recursos. O exemplo a seguir mostra como criar grupos de administradores para armazenamento em blocos (VolumeAdmins), VCN (NetworkAdmins), bancos de dados (DBAdmins) e armazenamento de objetos (StorageAdmins).

Allow group TenancyAdmins to manage all-resources in tenancy
Allow group VolumeAdmins to manage volume-family in tenancy
Allow group NetworkAdmins to manage virtual-network-family in tenancy
Allow group StorageAdmins to manage object-family in tenancy
Allow group DBAdmins to manage database-family in tenancy

É possível restringir ainda mais as políticas de segurança a um compartimento específico. Por exemplo, o departamento de RH de uma empresa pode criar o grupo HRAdmins para gerenciar recursos dentro do compartimento HR-compartment. O grupo HRNetworkAdmins tem acesso administrativo somente aos recursos da VCN dentro do compartimento HR-compartment.

Allow group HRAdmins to manage all-resources in compartment HR-compartment
Allow group HRNetworkAdmins to manage virtual-network-family in compartment HR-compartment

Os auditores de conformidade têm a tarefa de examinar recursos de nuvem e verificar violações de política. A política a seguir permite que o grupo InternalAuditors inspecione (list) todos os recursos de uma tenancy.

Allow group InternalAuditors to inspect all-resources in tenancy

Se você quiser limitar os auditores apenas a inspecionar usuários e grupos em uma tenancy, poderá criar um grupo UserAuditors com a seguinte política:

Allow group UserAuditors to inspect users in tenancy
Allow group UserAuditors to inspect groups in tenancy

Se você quiser criar um grupo de auditores que só pode inspecionar firewalls da VCN na tenancy, use a seguinte política:

Allow group FirewallAuditors to inspect security-lists in tenancy

Em todos os exemplos de política, você pode restringir as políticas a um compartimento especificando Compartment <name> (em que <name> é o nome do compartimento) na política.

Restringir a Capacidade de Alterar Membros do Grupo de Administradores da Tenancy

Os membros do grupo Administrators podem gerenciar todos os recursos de uma tenancy. Os membros do grupo Administrators são controlados pelos usuários do grupo. Normalmente, é conveniente ter um grupo para criar e adicionar usuários na tenancy, mas devemos restringir o grupo em relação a alterações nos membros do grupo Administrators. O exemplo a seguir cria um grupo UserAdmins para isso.

Allow group UserAdmins to inspect users in tenancy
Allow group UserAdmins to inspect groups in tenancy
Allow group UserAdmins to use users in tenancy
 where target.group.name!='Administrators'
Allow group UserAdmins to use groups in tenancy
 where target.group.name!='Administrators'

O uso de verbos com condições (terceira e quarta instruções da política) permite que UserAdmins adicione usuários e grupos usando APIs (UpdateUser, UpdateGroup) para todos os grupos na tenancy, exceto o grupo Administrators. No entanto, como o código target.group.name!='Administrators' não está relacionado às APIs list e get (ListUsers, GetUser, ListGroups e GetGroup), essas APIs falharão. Portanto, você deve adicionar explicitamente o verbo inspect (primeiro e segunda instruções da política) para permitir que UserAdmins obtenha informações sobre membros usuários e grupos.

Impedir a Exclusão ou a Atualização de Políticas de Segurança

O exemplo a seguir cria um grupo PolicyAdmins que permite criar e listar políticas de segurança criadas por administradores da tenancy, mas não é possível excluí-las ou atualizá-las.

Allow group PolicyAdmins to use policies in tenancy
Allow group PolicyAdmins to manage policies in tenancy
 where request.permission='POLICY_CREATE'

Essa instrução de política de segurança concede somente a permissão POLICY_CREATE, e não as permissões POLICY_DELETE e POLICY_UPDATE.

Impedir que Administradores Acessem ou Alterem Credenciais do Usuário

Alguns requisitos de conformidade precisam da separação de responsabilidades, especialmente onde a funcionalidade de gerenciamento de credenciais do usuário é separada do gerenciamento da tenancy. Nesse caso, você pode criar dois grupos de administração, TenancyAdmins e CredentialAdmins em que TenancyAdmins pode executar todas as funções de gerenciamento da tenancy, exceto o gerenciamento de credenciais do usuário, e CredentialAdmins pode gerenciar as credenciais do usuário. TenancyAdmins pode acessar todas as APIs, exceto aquelas que listam, atualizam ou excluem credenciais do usuário. CredentialAdmins só pode gerenciar as credenciais do usuário.

Allow group TenancyAdmins to manage all resources in tenancy
 where all {request.operation!='ListApiKeys',
            request.operation!='ListAuthTokens',
            request.operation!='ListCustomerSecretKeys',
            request.operation!='UploadApiKey',
            request.operation!='DeleteApiKey',
            request.operation!='UpdateAuthToken',
            request.operation!='CreateAuthToken',
            request.operation!='DeleteAuthToken',
            request.operation!='CreateSecretKey',
            request.operation!='UpdateCustomerSecretKey',
            request.operation!='DeleteCustomerSecretKey'}
Allow group CredentialAdmins to manage users in tenancy
 where any {request.operation='ListApiKeys',
            request.operation='ListAuthTokens',
            request.operation='ListCustomerSecretKeys',
            request.operation='UploadApiKey',
            request.operation='DeleteApiKey',
            request.operation='UpdateAuthToken',
            request.operation='CreateAuthToken',
            request.operation='DeleteAuthToken',
            request.operation='CreateSecretKey',
            request.operation='UpdateCustomerSecretKey',
            request.operation='DeleteCustomerSecretKey'}