Exemples de politique de sécurité

Voyez comment utiliser des politiques pour créer des administrateurs de niveau de service avec le moins de privilèges possible, restreindre la capacité des administrateurs à modifier l'appartenance aux groupes d'administrateurs de location et empêcher les administrateurs de supprimer ou de mettre à jour des politiques de sécurité, ainsi qu'empêcher les administrateurs d'accéder aux données d'identification d'utilisateur ou de les modifier.

Des exemples de politique de sécurité GIA communes sont fournies à la rubrique Politiques communes. Dans tous les exemples suivants, les politiques portent sur une location. Toutefois, en spécifiant un nom de compartiment, leur portée peut être réduite à un compartiment spécifique dans une location.

Créez des administrateurs avec privilège minimal au niveau du service

Pour mettre en oeuvre le principe de sécurité du privilège minimal, vous pouvez créer des administrateurs au niveau du service dans la location afin de réduire encore davantage la portée de l'accès administratif. Cela signifie que les administrateurs au niveau du service peuvent seulement gérer les ressources d'un service spécifique. Par exemple, les administrateurs de réseau ont besoin d'un accès administratif (manage) aux ressources du réseau en nuage virtuel uniquement et non aux autres ressources. L'exemple suivant montre comment créer des groupes d'administrateurs pour le stockage par blocs (VolumeAdmins), le réseau en nuage virtuel (NetworkAdmins), des bases de données (DBAdmins) et le stockage d'objets (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

Vous pouvez restreindre encore davantage les politiques de sécurité à un compartiment spécifique. Par exemple, le service des RH d'une entreprise peut créer un groupe HRAdmins pour gérer les ressources de son compartiment, HR-compartment. Le groupe HRNetworkAdmins dispose d'un accès administrateur aux ressources du réseau en nuage virtuel dans le compartiment HR-compartment uniquement.

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

Les vérificateurs de la conformité sont chargés d'examiner les ressources en nuage et de vérifier s'il y a des violations de politique. La politique suivante permet au groupe InternalAuditors d'inspecter (list) toutes les ressources dans une location.

Allow group InternalAuditors to inspect all-resources in tenancy

Si vous souhaitez limiter les vérificateurs à inspecter uniquement les utilisateurs et les groupes dans une location, vous pouvez créer un groupe UserAuditors avec la politique suivante :

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

Pour créer un groupe de vérificateurs ne pouvant inspecter que les pare-feu du réseau en nuage virtuel dans la location, utilisez la politique suivante :

Allow group FirewallAuditors to inspect security-lists in tenancy

Dans tous les exemples de politiques, vous pouvez limiter les politiques à un compartiment en spécifiant Compartment <name> (où <name> est le nom du compartiment) dans la politique.

Restreindre la capacité à modifier l'appartenance au groupe d'administrateurs de location

Les membres du groupe Administrators peuvent gérer toutes les ressources d'une location. L'appartenance au groupe Administrators est contrôlée par les utilisateurs membres du groupe. En général, il est pratique d'avoir un groupe pour créer et ajouter des utilisateurs dans la location, mais empêchez-les de modifier l'appartenance au groupe Administrators. Dans l'exemple suivant, un groupe UserAdmins est créé à cette fin.

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'

Le verbe use avec des conditions (troisième et quatrième énoncés de politique) permet à UserAdmins d'ajouter des utilisateurs et des groupes à l'aide des API (UpdateUser, UpdateGroup) à tous les groupes de la location, à l'exception du groupe Administrators. Toutefois, comme target.group.name!='Administrators' n'est pas lié aux API list et get (ListUsers, GetUser, ListGroups, and GetGroup), ces API échoueront. Vous devez donc ajouter le verbe inspect de manière explicite (premier et deuxième énoncés de politique) afin de permettre aux utilisateurs du groupe UserAdmins d'obtenir les informations sur les utilisateurs et l'appartenance à des groupes.

Empêcher la suppression ou la mise à jour des politiques de sécurité

Dans l'exemple suivant, un groupe PolicyAdmins est créé pour pouvoir créer des politiques de sécurité et lister les politiques créées par les administrateurs de location, mais pas les supprimer ni les mettre à jour.

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

Cet énoncé de politique de sécurité accorde explicitement l'autorisation POLICY_CREATE seulement, et non les autorisations POLICY_DELETE et POLICY_UPDATE.

Empêcher les administrateurs d'accéder aux données d'identification d'utilisateur ou de les modifier

Pour respecter certaines exigences de conformité, il faut séparer les fonctions, notamment les fonctions de gestion des données d'identification de l'utilisateur et les fonctions de gestion de la location. Dans ce cas, vous pouvez créer deux groupes d'administration, TenancyAdmins et CredentialAdmins, où TenancyAdmins peut effectuer toutes les fonctions de gestion de la location, à l'exception de la gestion des données d'identification des utilisateurs, et CredentialAdmins peut gérer les données d'identification des utilisateurs. TenancyAdmins peut accéder à toutes les API sauf celles qui listent, mettent à jour et supprime les données d'identification d'utilisateur. CredentialAdmins peut seulement gérer les données d'identification de l'utilisateur.

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'}