Stratégie prédéfinie pour une sécurité étendue par défaut

Cette page décrit les règles préventives incluses dans la version v1.0 de la stratégie prédéfinie pour la sécurité étendue par défaut. Cette stratégie prédéfinie permet d'éviter les erreurs de configuration courantes et les problèmes de sécurité courants causés par les paramètres par défaut.

Vous pouvez utiliser cette stratégie prédéfinie pour configurer une stratégie de sécurité qui permet de protéger les ressources Google Cloud. Si vous souhaitez déployer cette stratégie prédéfinie, vous devez personnaliser certaines règles afin qu'elles s'appliquent à votre environnement.

Règle Description Normes de conformité
iam.disableServiceAccountKeyCreation

Cette contrainte empêche les utilisateurs de créer des clés persistantes pour les comptes de service afin de réduire le risque d'exposition des identifiants des comptes de service.

La valeur est true pour désactiver la création de clés de compte de service.

Contrôle NIST SP 800-53: AC-2
iam.automaticIamGrantsForDefaultServiceAccounts

Cette contrainte empêche les comptes de service par défaut de recevoir l'éditeur de rôle IAM (Identity and Access Management) trop permissif lors de la création.

La valeur false permet de désactiver l'attribution automatique de rôles IAM pour les comptes de service par défaut.

Contrôle NIST SP 800-53: AC-3
iam.disableServiceAccountKeyUpload

Cette contrainte évite le risque de fuite et de réutilisation de matériel de clé personnalisée dans les clés de compte de service.

La valeur est true pour désactiver les importations de clés de compte de service.

Contrôle NIST SP 800-53: AC-6
storage.publicAccessPrevention

Cette règle empêche les buckets Cloud Storage d'être ouverts à un accès public non authentifié.

La valeur est true pour empêcher l'accès public aux buckets.

Contrôle NIST SP 800-53: AC-3 et AC-6
iam.allowedPolicyMemberDomains

Cette règle limite les stratégies IAM de manière à n'autoriser que les identités utilisateur gérées dans les domaines sélectionnés à accéder aux ressources de cette organisation.

La valeur est directoryCustomerId pour restreindre le partage entre les domaines.

Contrôle NIST SP 800-53: AC-3, AC-6 et IA-2
essentialcontacts.allowedContactDomains

Cette règle limite les contacts essentiels de manière à n'autoriser que les identités utilisateur gérées dans les domaines sélectionnés à recevoir des notifications de la plate-forme.

La valeur est @google.com. Vous devez modifier cette valeur pour qu'elle corresponde à votre domaine.

Contrôle NIST SP 800-53: AC-3, AC-6 et IA-2
storage.uniformBucketLevelAccess

Cette règle empêche les buckets Cloud Storage d'utiliser des LCA par objet (un système distinct des stratégies IAM) pour fournir l'accès, assurant ainsi la cohérence de la gestion des accès et de l'audit.

La valeur est true pour appliquer un accès uniforme au niveau du bucket.

Contrôle NIST SP 800-53: AC-3 et AC-6
compute.requireOsLogin

Cette règle nécessite OS Login sur les VM nouvellement créées afin de faciliter la gestion des clés SSH, de fournir des autorisations au niveau des ressources avec les stratégies IAM et de consigner l'accès des utilisateurs.

La valeur est true pour exiger OS Login.

Contrôle NIST SP 800-53: AC-3 et AU-12
compute.disableSerialPortAccess

Cette règle empêche les utilisateurs d'accéder au port série de la VM, qui peut être utilisé pour un accès par porte dérobée à partir du plan de contrôle de l'API Compute Engine.

La valeur est true pour désactiver l'accès au port série des VM.

Contrôle NIST SP 800-53: AC-3 et AC-6
compute.restrictXpnProjectLienRemoval

Cette règle empêche la suppression accidentelle de projets hôtes de VPC partagé en limitant la suppression des privilèges de projet.

La valeur est true pour limiter la suppression des privilèges du projet VPC partagé.

Contrôle NIST SP 800-53: AC-3 et AC-6
compute.vmExternalIpAccess

Cette règle empêche la création d'instances Compute Engine ayant une adresse IP publique, ce qui pourrait les exposer au trafic Internet entrant et sortant.

La valeur est denyAll pour désactiver tout accès à partir d'adresses IP publiques.

Contrôle NIST SP 800-53: AC-3 et AC-6
compute.skipDefaultNetworkCreation

Cette règle désactive la création automatique d'un réseau VPC par défaut et de règles de pare-feu par défaut dans chaque nouveau projet, garantissant ainsi que les règles de réseau et de pare-feu sont créées intentionnellement.

La valeur est true pour éviter de créer le réseau VPC par défaut.

Contrôle NIST SP 800-53: AC-3 et AC-6
compute.setNewProjectDefaultToZonalDNSOnly

Cette règle empêche les développeurs d'applications de choisir d'anciens paramètres DNS pour les instances Compute Engine dont la fiabilité de service est inférieure à celle des paramètres DNS modernes.

La valeur est Zonal DNS only pour les nouveaux projets.

Contrôle NIST SP 800-53: AC-3 et AC-6
sql.restrictPublicIp

Cette règle empêche la création d'instances Cloud SQL ayant des adresses IP publiques, ce qui pourrait les exposer au trafic Internet entrant et sortant.

La valeur est true pour restreindre l'accès aux instances Cloud SQL en fonction d'adresses IP publiques.

Contrôle NIST SP 800-53: AC-3 et AC-6
sql.restrictAuthorizedNetworks

Cette règle empêche les plages réseau publiques ou non-RFC 1918 d'accéder aux bases de données Cloud SQL.

La valeur est true pour limiter les réseaux autorisés sur les instances Cloud SQL.

Contrôle NIST SP 800-53: AC-3 et AC-6
compute.restrictProtocolForwardingCreationForTypes

Cette règle autorise le transfert de protocole de VM pour les adresses IP internes uniquement.

La valeur est INTERNAL pour restreindre le transfert de protocole en fonction du type d'adresse IP.

Contrôle NIST SP 800-53: AC-3 et AC-6
compute.disableVpcExternalIpv6

Cette règle empêche la création de sous-réseaux IPv6 externes, qui peuvent être exposés au trafic Internet entrant et sortant.

La valeur est true pour désactiver les sous-réseaux IPv6 externes.

Contrôle NIST SP 800-53: AC-3 et AC-6
compute.disableNestedVirtualization

Cette règle désactive la virtualisation imbriquée afin de réduire les risques de sécurité liés aux instances imbriquées non surveillées.

La valeur est true pour désactiver la virtualisation imbriquée de la VM.

Contrôle NIST SP 800-53: AC-3 et AC-6

Définition YAML

Voici la définition YAML de la stratégie prédéfinie pour les paramètres par défaut.

name: organizations/123/locations/global/postureTemplates/secure_by_default
description: Posture Template to make your cloud environment more secure.
revision_id: v.1.0
state: ACTIVE
policy_sets:
- policy_set_id: Secure-By-Default policy_set
  description: 18 org policies that new customers can automatically enable.
  policies:
  - policy_id: Disable service account key creation
    compliance_standards:
    - standard: NIST SP 800-53
      control: AC-2
    constraint:
      org_policy_constraint:
        canned_constraint_id: iam.disableServiceAccountKeyCreation
        policy_rules:
        - enforce: true
    description: Prevent users from creating persistent keys for service accounts to decrease the risk of exposed service account credentials.
  - policy_id: Disable Automatic IAM Grants for Default Service Accounts
    compliance_standards:
    - standard: NIST SP 800-53
      control: AC-3
    constraint:
      org_policy_constraint:
        canned_constraint_id: iam.automaticIamGrantsForDefaultServiceAccounts
        policy_rules:
        - enforce: true
    description: Prevent default service accounts from receiving the overly-permissive IAM role Editor at creation.
  - policy_id: Disable Service Account Key Upload
    compliance_standards:
    - standard: NIST SP 800-53
      control: AC-6
    constraint:
      org_policy_constraint:
        canned_constraint_id: iam.disableServiceAccountKeyUpload
        policy_rules:
        - enforce: true
    description: Avoid the risk of leaked and reused custom key material in service account keys.
  - policy_id: Enforce Public Access Prevention
    compliance_standards:
    - standard: NIST SP 800-53
      control: AC-3
    - standard: NIST SP 800-53
      control: AC-6
    constraint:
      org_policy_constraint:
        canned_constraint_id: storage.publicAccessPrevention
        policy_rules:
        - enforce: true
    description: Enforce that Storage Buckets cannot be configured as open to unauthenticated public access.
  - policy_id: Domain restricted sharing
    compliance_standards:
    - standard: NIST SP 800-53
      control: AC-3
    - standard: NIST SP 800-53
      control: AC-6
    - standard: NIST SP 800-53
      control: IA-2
    constraint:
      org_policy_constraint:
        canned_constraint_id: iam.allowedPolicyMemberDomains
        policy_rules:
        - values:
            allowed_values:
            - directoryCustomerId
    description: Limit IAM policies to only allow managed user identities in my selected domain(s) to access resources inside this organization.
  - policy_id: Domain restricted contacts
    compliance_standards:
    - standard: NIST SP 800-53
      control: AC-3
    - standard: NIST SP 800-53
      control: AC-6
    - standard: NIST SP 800-53
      control: IA-2
    constraint:
      org_policy_constraint:
        canned_constraint_id: essentialcontacts.allowedContactDomains
        policy_rules:
        - values:
            allowed_values:
            - "@google.com"
    description: Limit Essential Contacts to only allow managed user identities in my selected domain(s) to receive platform notifications.
  - policy_id: Enforce uniform bucket-level access
    compliance_standards:
    - standard: NIST SP 800-53
      control: AC-3
    - standard: NIST SP 800-53
      control: AC-6
    constraint:
      org_policy_constraint:
        canned_constraint_id: storage.uniformBucketLevelAccess
        policy_rules:
        - enforce: true
    description: Prevent GCS buckets from using per-object ACL (a separate system from IAM policies) to provide access, enforcing a consistency for access management and auditing.
  - policy_id: Require OS Login
    compliance_standards:
    - standard: NIST SP 800-53
      control: AC-3
    - standard: NIST SP 800-53
      control: AU-12
    constraint:
      org_policy_constraint:
        canned_constraint_id: compute.requireOsLogin
        policy_rules:
        - enforce: true
    description: Require OS Login on newly created VMs to more easily manage SSH keys, provide resource-level permission with IAM policies, and log user access.
  - policy_id: Disable VM serial port access
    compliance_standards:
    - standard: NIST SP 800-53
      control: AC-3
    - standard: NIST SP 800-53
      control: AC-6
    constraint:
      org_policy_constraint:
        canned_constraint_id: compute.disableSerialPortAccess
        policy_rules:
        - enforce: true
    description: Prevent users from accessing the VM serial port which can be used for backdoor access from the Compute Engine API control plane
  - policy_id: Restrict shared VPC project lien removal
    compliance_standards:
    - standard: NIST SP 800-53
      control: AC-3
    - standard: NIST SP 800-53
      control: AC-6
    constraint:
      org_policy_constraint:
        canned_constraint_id: compute.restrictXpnProjectLienRemoval
        policy_rules:
        - enforce: true
    description: Prevent the accidental deletion of Shared VPC host projects by restricting the removal of project liens.
  - policy_id: Define allowed external IPs for VM instances
    compliance_standards:
    - standard: NIST SP 800-53
      control: AC-3
    - standard: NIST SP 800-53
      control: AC-6
    constraint:
      org_policy_constraint:
        canned_constraint_id: compute.vmExternalIpAccess
        policy_rules:
        - deny_all: true
    description: Prevent the creation of Compute instances with a public IP, which can expose them to internet ingress and egress.
  - policy_id: Skip default network creation
    compliance_standards:
    - standard: NIST SP 800-53
      control: AC-3
    - standard: NIST SP 800-53
      control: AC-6
    constraint:
      org_policy_constraint:
        canned_constraint_id: compute.skipDefaultNetworkCreation
        policy_rules:
        - enforce: true
    description: Disable the automatic creation of a default VPC network and default firewall rules in each new project, ensuring that my network and firewall rules are intentionally created.
  - policy_id: Sets the internal DNS setting for new projects to Zonal DNS Only
    compliance_standards:
    - standard: NIST SP 800-53
      control: AC-3
    - standard: NIST SP 800-53
      control: AC-6
    constraint:
      org_policy_constraint:
        canned_constraint_id: compute.setNewProjectDefaultToZonalDNSOnly
        policy_rules:
        - enforce: true
    description: Set guardrails that application developers cannot choose legacy DNS settings for compute instances that have lower service reliability than modern DNS settings.
  - policy_id: Restrict Public IP access on Cloud SQL instances
    compliance_standards:
    - standard: NIST SP 800-53
      control: AC-3
    - standard: NIST SP 800-53
      control: AC-6
    constraint:
      org_policy_constraint:
        canned_constraint_id: sql.restrictPublicIp
        policy_rules:
        - enforce: true
    description: Prevent the creation of Cloud SQL instances with a public IP, which can expose them to internet ingress and egress.
  - policy_id: Restrict Authorized Networks on Cloud SQL instances
    compliance_standards:
    - standard: NIST SP 800-53
      control: AC-3
    - standard: NIST SP 800-53
      control: AC-6
    constraint:
      org_policy_constraint:
        canned_constraint_id: sql.restrictAuthorizedNetworks
        policy_rules:
        - enforce: true
    description: Prevent public or non-RFC 1918 network ranges from accessing my Cloud SQL databases.
  - policy_id: Restrict Protocol Forwarding Based on type of IP Address
    compliance_standards:
    - standard: NIST SP 800-53
      control: AC-3
    - standard: NIST SP 800-53
      control: AC-6
    constraint:
      org_policy_constraint:
        canned_constraint_id: compute.restrictProtocolForwardingCreationForTypes
        policy_rules:
        - values:
            allowed_values:
            - INTERNAL
    description: Allow VM protocol forwarding for internal IP addresses only.
  - policy_id: Disable VPC External IPv6 usage
    compliance_standards:
    - standard: NIST SP 800-53
      control: AC-3
    - standard: NIST SP 800-53
      control: AC-6
    constraint:
      org_policy_constraint:
        canned_constraint_id: compute.disableVpcExternalIpv6
        policy_rules:
        - enforce: true
    description: Prevent the creation of external IPv6 subnets, which can be exposed to internet ingress and egress.
  - policy_id: Disable VM nested virtualization
    compliance_standards:
    - standard: NIST SP 800-53
      control: AC-3
    - standard: NIST SP 800-53
      control: AC-6
    constraint:
      org_policy_constraint:
        canned_constraint_id: compute.disableNestedVirtualization
        policy_rules:
        - enforce: true
    description: Disable nested virtualization to decrease my security risk due to unmonitored nested instances.

Étapes suivantes