Contrôler l'utilisation d'Autokey

Ce document explique comment utiliser les stratégies de refus IAM et les contraintes liées aux règles d'administration pour contrôler l'utilisation d'Autokey dans une organisation ou un dossier. Ces deux garde-fous ne peuvent être modifiés qu'avec des rôles au niveau de l'organisation. Les comptes principaux disposant de rôles de propriétaire ou d'administrateur au niveau du dossier ou du projet ne peuvent donc pas les remplacer.

Les cas d'utilisation suivants sont pris en charge :

IAM ou règle d'administration

IAM et les règles d'administration vous permettent de définir des garde-fous pour contrôler l'utilisation de Cloud KMS Autokey dans votre organisation.

IAM contrôle qui est autorisé à effectuer quelles actions sur quelles ressources. Vous pouvez utiliser IAM pour limiter les comptes principaux qui peuvent activer et utiliser Autokey dans votre organisation.

Les règles d'administration contrôlent les ressources qui peuvent être créées et comment elles peuvent être configurées. Vous pouvez utiliser des règles d'administration personnalisées pour limiter et comment Autokey peut être activé.

Vous pouvez utiliser IAM et les règles d'administration ensemble pour créer un système de garde-fous robuste afin de contrôler qui peut activer et utiliser Autokey, ainsi que où et comment il peut le faire.

Avant de commencer

Pour obtenir les autorisations nécessaires pour contrôler l'utilisation d'Autokey, demandez à votre administrateur de vous accorder les rôles IAM suivants sur l'organisation :

Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.

Utiliser des stratégies de refus IAM pour contrôler Autokey

Les stratégies de refus IAM offrent un contrôle descendant sur les comptes principaux qui peuvent effectuer quelles actions. Les stratégies de refus définies sur une ressource ne peuvent pas être remplacées par des attributions de rôle IAM ni par des stratégies de refus définies sur une ressource enfant. Les comptes principaux ne peuvent pas effectuer d'actions nécessitant des autorisations refusées, même si l'autorisation est incluse dans un rôle dont ils disposent.

Pour savoir comment créer des stratégies de refus IAM, consultez la section Refuser l'accès aux ressources.

Le tableau suivant présente quelques exemples de cas d'utilisation des stratégies de refus IAM, y compris les autorisations que vous pouvez refuser pour contrôler Autokey dans votre organisation et l'effet du refus de chaque autorisation.

Cas d'utilisation Autorisation refusée Comptes principaux Effet
Interdire l'activation d'Autokey cloudkms.autokeyConfigs.update Tous Les comptes principaux sélectionnés ne peuvent pas créer de nouvelles ressources AutokeyConfig ni mettre à jour celles existantes. Toutes les ressources existantes AutokeyConfig restent en vigueur et peuvent toujours être utilisées.
Interdire l'utilisation d'Autokey cloudkms.keyHandles.create Tous Les comptes principaux sélectionnés ne peuvent pas créer de ressources KeyHandle. Ils ne peuvent donc pas créer de ressources protégées à l'aide d'Autokey, même lorsque celui-ci est activé.
Interdire la création manuelle de clés cloudkms.cryptoKeys.create Tous, sauf l'agent de service Cloud KMS Les comptes principaux sélectionnés ne peuvent pas créer de clés. Lorsque vous exemptez uniquement l'agent de service Cloud KMS, Autokey est le seul moyen de créer des clés.
Seule l'IaC peut modifier les configurations Autokey cloudkms.autokeyConfigs.update Tous, sauf votre agent d'exécution Terraform Les comptes principaux sélectionnés ne peuvent pas créer de nouvelles ressources AutokeyConfig ni mettre à jour celles existantes. Lorsque vous exemptez votre compte principal Terraform principal, vos configurations Autokey sont contrôlées par votre infrastructure as code (IaC).

Utiliser des contraintes personnalisées liées aux règles d'administration pour contrôler Autokey

Les contraintes personnalisées liées aux règles d'administration offrent un contrôle ascendant sur l'endroit et la manière dont Autokey peut être configuré. Les contraintes peuvent être remplacées par des contraintes appliquées à une ressource enfant. Toutefois, la modification des contraintes nécessite des autorisations au niveau de l'organisation. Les comptes principaux disposant d'autorisations au niveau du dossier ou du projet ne peuvent donc pas remplacer les contraintes. Lorsque les contraintes sont appliquées, les comptes principaux ne peuvent pas effectuer d'actions interdites, même s'ils disposent des autorisations requises pour le faire.

Pour savoir comment appliquer des contraintes personnalisées dans votre organisation, consultez Créer des contraintes personnalisées liées aux règles d'administration pour Cloud KMS.

Vous pouvez combiner les contraintes personnalisées liées aux règles d'administration décrites ici avec d'autres règles d'administration CMEK.

Restreindre le mode Autokey

Vous pouvez restreindre les fonctionnalités d'Autokey en bloquant de manière conditionnelle la création de ressources AutokeyConfig. L'exemple de définition de contrainte suivant interdit la création ou la mise à jour de ressources AutokeyConfig en fonction de leur keyProjectResolutionMode.

    name: organizations/ORGANIZATION_ID/customConstraints/custom.restrictAutokeyKeyStorage
    resourceTypes:
    - cloudkms.googleapis.com/AutokeyConfig
    methodTypes:
    - CREATE
    - UPDATE
    condition: "resource.keyProjectResolutionMode == 'KEY_PROJECT_RESOLUTION_MODE')"
    actionType: DENY
    displayName: Restrict Autokey key storage mode
    description: >
      Prevent creation or update of AutokeyConfig resources with
      `KEY_PROJECT_RESOLUTION_MODE` key resolution mode.

Remplacez KEY_PROJECT_RESOLUTION_MODE par le keyProjectResolutionMode que vous souhaitez bloquer. Par exemple, pour empêcher quiconque dans votre organisation d'utiliser le stockage des clés dans le même projet dans ses projets, définissez cette valeur sur RESOURCE_PROJECT.

Interdire la création d'une configuration Autokey dans un dossier

Vous pouvez utiliser des règles d'administration personnalisées pour empêcher l'activation d'Autokey dans un dossier en bloquant la création de toutes les ressources AutokeyConfig.

L'exemple de définition de contrainte suivant interdit la création de ressources AutokeyConfig dans un dossier nommé. Lorsque cette contrainte est appliquée, toutes les configurations existantes peuvent toujours être modifiées.

    name: organizations/ORGANIZATION_ID/customConstraints/custom.noNewAutokeyConfigFolder
    resourceTypes:
    - cloudkms.googleapis.com/AutokeyConfig
    methodTypes:
    - CREATE
    condition: "resource.name == 'folders/FOLDER_ID/autokeyConfig'"
    actionType: DENY
    displayName: Prohibit Autokey within FOLDER_ID
    description: >
      Prevent creation of new AutokeyConfig resources within
      folders/FOLDER_ID.

Remplacez les éléments suivants :

  • ORGANIZATION_ID : identifiant de votre organisation.
  • FOLDER_ID par l'identifiant du dossier dans lequel vous souhaitez bloquer Autokey.

Interdire la création d'une configuration Autokey dans une organisation

Vous pouvez utiliser des règles d'administration personnalisées pour empêcher l'activation d'Autokey dans l'ensemble de votre organisation en bloquant la création de toutes les ressources AutokeyConfig.

L'exemple de définition de contrainte suivant interdit la création de ressources AutokeyConfig dans l'ensemble de votre organisation. Lorsque cette contrainte est appliquée, toutes les configurations existantes peuvent toujours être modifiées.

    name: organizations/ORGANIZATION_ID/customConstraints/custom.noNewAutokeyConfigOrg
    resourceTypes:
    - cloudkms.googleapis.com/AutokeyConfig
    methodTypes:
    - CREATE
    condition: "resource.name.endsWith('/autokeyConfig')"
    actionType: DENY
    displayName: Prohibit Autokey within ORGANIZATION_ID
    description: >
      Prevent creation of new AutokeyConfig resources within organization
      ORGANIZATION_ID.

Remplacez ORGANIZATION_ID par l'identifiant de votre organisation.

Interdire la modification de la configuration Autokey dans un dossier

Vous pouvez utiliser des règles d'administration personnalisées pour empêcher la modification des configurations Autokey dans un dossier en bloquant la création ou la mise à jour de toutes les ressources AutokeyConfig.

L'exemple de définition de contrainte suivant interdit la création ou la mise à jour de ressources AutokeyConfig dans un dossier nommé.

    name: organizations/ORGANIZATION_ID/customConstraints/custom.noChangeAutokeyConfigFolder
    resourceTypes:
    - cloudkms.googleapis.com/AutokeyConfig
    methodTypes:
    - CREATE
    - UPDATE
    condition: "resource.name == 'folders/FOLDER_ID/autokeyConfig'"
    actionType: DENY
    displayName: Prohibit Autokey within FOLDER_ID
    description: >
      Prevent creation or update of AutokeyConfig resources within
      folders/FOLDER_ID.

Remplacez les éléments suivants :

  • ORGANIZATION_ID : identifiant de votre organisation.
  • FOLDER_ID par l'identifiant du dossier dans lequel vous souhaitez bloquer Autokey.

Interdire la modification de la configuration Autokey dans une organisation

Vous pouvez utiliser des règles d'administration personnalisées pour empêcher la modification des configurations Autokey dans l'ensemble de votre organisation en bloquant la création ou la mise à jour de toutes les ressources AutokeyConfig.

L'exemple de définition de contrainte suivant interdit la création ou la mise à jour de ressources AutokeyConfig dans l'ensemble de votre organisation.

    name: organizations/ORGANIZATION_ID/customConstraints/custom.noChangeAutokeyConfigOrg
    resourceTypes:
    - cloudkms.googleapis.com/AutokeyConfig
    methodTypes:
    - CREATE
    - UPDATE
    condition: condition: "resource.name.endsWith('/autokeyConfig')"
    actionType: DENY
    displayName: Prohibit Autokey within ORGANIZATION_ID
    description: >
      Prevent creation or update of AutokeyConfig resources within
      ORGANIZATION_ID.

Remplacez ORGANIZATION_ID par l'identifiant de votre organisation.

N'autoriser que la configuration Autokey DISABLED

L'exemple de définition de contrainte suivant interdit à quiconque de créer ou de mettre à jour une ressource AutokeyConfig dans l'ensemble d'une organisation, sauf si le keyProjectResolutionMode est explicitement défini sur DISABLED.

    name: organizations/ORGANIZATION_ID/customConstraints/custom.onlyDisabledAutokeyConfig
    resourceTypes:
    - cloudkms.googleapis.com/AutokeyConfig
    methodTypes:
    - CREATE
    - UPDATE
    condition: "resource.keyProjectResolutionMode=='DISABLED'"
    actionType: ALLOW
    displayName: Prohibit Autokey within the organization
    description: >
      Prevent creation or update of `AutokeyConfig` resources within
      organization ORGANIZATION_ID unless the `keyProjectResolutionMode`
      is `DISABLED`.

Interdire la configuration Autokey au niveau du projet

L'exemple de définition de contrainte suivant interdit à quiconque de créer ou de mettre à jour une ressource AutokeyConfig dans un projet, sans bloquer les configurations au niveau du dossier. Lorsque cette contrainte est appliquée, toutes les ressources AutokeyConfig existantes au niveau du projet restent en vigueur, mais tous les autres projets doivent continuer à hériter du AutokeyConfig de leur dossier parent.

    name: organizations/ORGANIZATION_ID/customConstraints/custom.noAutokeyConfigProject
    resourceTypes:
    - cloudkms.googleapis.com/AutokeyConfig
    methodTypes:
    - CREATE
    - UPDATE
    condition: "resource.name.startsWith('projects/')"
    actionType: DENY
    displayName: Block project-level Autokey within the organization
    description: >
      Prevent creation or update of `AutokeyConfig` resources on projects within
      organization ORGANIZATION_ID. Existing project-level AutokeyConfig
      resources remain in effect, but all other projects must inherit the
      AutokeyConfig from their parent folder.

Exemples de cas d'utilisation

Les sections suivantes fournissent des exemples combinant des stratégies de refus IAM, des règles d'administration personnalisées et des règles d'administration standards.

Exiger que les clés soient créées par Autokey

Si vous souhaitez exiger l'utilisation de CMEK avec Autokey dans un dossier, vous pouvez le faire en combinant les contrôles d'accès IAM avec les règles d'administration CMEK. Pour ce faire, supprimez les autorisations de création de clés des comptes principaux autres que l'agent de service Cloud KMS, puis exigez que toutes les ressources soient protégées par CMEK à l'aide du projet de clés Autokey.

Pour appliquer l'utilisation d'Autokey dans un dossier, procédez comme suit :

  1. Bloquez la création manuelle de clés dans le projet de clés en appliquant une stratégie de refus IAM. Dans la stratégie de refus, refusez l'autorisation cloudkms.cryptoKeys.create à tous les comptes principaux, à l'exception de l'agent de service Cloud KMS. Si le dossier utilise le stockage des clés dans un projet dédié, appliquez la stratégie de refus au projet de clés dédié. Si le dossier utilise le stockage des clés dans le même projet, appliquez la stratégie de refus aux projets de ressources.

    Lorsque les clés ne peuvent pas être créées manuellement, seules les clés créées par Autokey peuvent être créées dans ces projets.

  2. Exigez que les nouvelles ressources créées dans le dossier soient protégées à l'aide de CMEK en appliquant la contrainte constraints/gcp.restrictNonCmekServices.

    Pour en savoir plus sur cette contrainte, y compris la liste des services compatibles avec la contrainte, consultez Exiger la protection CMEK.

  3. Exigez que les clés utilisées pour CMEK proviennent d'un projet de clés dédié ou de projets dans lesquels le stockage des clés dans le même projet est activé en appliquant la contrainte constraints/gcp.restrictCmekCryptoKeyProjects. Pour en savoir plus sur cette contrainte, y compris la liste des services compatibles avec la contrainte, consultez Limiter l'utilisation des clés Cloud KMS pour CMEK.

Interdire complètement Autokey

Si vous souhaitez bloquer complètement l'utilisation d'Autokey dans une organisation ou un dossier, vous pouvez le faire à l'aide de stratégies de refus IAM ou de contraintes personnalisées liées aux règles d'administration. Pour une assurance multicouche, vous pouvez utiliser les deux.

Pour bloquer complètement Autokey dans une organisation ou un dossier, procédez comme suit :

  1. Si Autokey est déjà activé quelque part dans l'organisation ou le dossier, désactivez Autokey d'abord.

  2. Empêchez les utilisateurs de configurer Autokey en appliquant une stratégie de refus IAM. Dans la stratégie de refus, refusez l'autorisation cloudkms.autokeyConfigs.update à tous les comptes principaux. Lorsque Autokey est désactivé partout et qu'aucun compte principal n'est en mesure de modifier les ressources AutokeyConfig, Autokey reste complètement désactivé.

  3. Facultatif : Les étapes ci-dessus suffisent à empêcher quiconque d'activer Autokey. Toutefois, si vous souhaitez une autre couche d'assurance, vous pouvez également appliquer une contrainte personnalisée liée aux règles d'administration pour n'autoriser que AutokeyConfig les ressources où Autokey est désactivé.

Si vous appliquez à la fois la stratégie de refus IAM et la contrainte personnalisée liée aux règles d'administration décrites ici, aucun compte principal ne pourra activer Autokey dans la ressource sans d'abord annuler ou mettre à jour ces deux garde-fous.

Étape suivante