Contraintes personnalisées liées aux règles d'administration

Cette page vous explique comment utiliser les contraintes personnalisées du service de règles d'administration pour restreindre des opérations spécifiques sur les ressources Google Cloud suivantes :

  • storagetransfer.googleapis.com/TransferJob

Pour en savoir plus sur les règles d'administration, consultez Règles d'administration personnalisées.

À propos des règles et des contraintes d'administration

Le service de règles d'administration Google Cloud vous offre un contrôle centralisé et automatisé sur les ressources de votre organisation. En tant qu'administrateur des règles d'administration, vous pouvez définir une règle d'administration, c'est-à-dire un ensemble de restrictions appelées contraintes qui s'appliquent aux ressources Google Cloud et aux descendants de ces ressources dans la hiérarchie des ressources Google Cloud. Vous pouvez appliquer des règles d'administration au niveau d'une organisation, d'un dossier ou d'un projet.

Les règles d'administration fournissent des contraintes gérées intégrées pour divers services Google Cloud. Toutefois, si vous souhaitez exercer un contrôle plus précis et personnalisable sur les champs spécifiques restreints dans vos règles d'administration, vous pouvez également créer des contraintes personnalisées et les utiliser dans une règle d'administration.

Héritage des règles

Par défaut, les règles d'administration sont héritées par les descendants des ressources sur lesquelles vous les appliquez. Par exemple, si vous appliquez une stratégie au niveau d'un dossier, Google Cloud l'applique à tous les projets du dossier. Pour mieux comprendre ce comportement et savoir comment le modifier, consultez la page Règles d'évaluation hiérarchique.

Avantages

  • Sécurité et gouvernance : appliquez un contrôle centralisé sur les opérations de transfert de données pour atténuer les risques de sécurité associés aux autorisations utilisateur étendues.
  • Contrôle précis : limitez les tâches de transfert à des buckets sources ou de destination spécifiques autorisés, ou limitez les transferts à des paires de services spécifiques (par exemple, uniquement les transferts de Cloud Storage vers Cloud Storage).

Avant de commencer

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. Verify that billing is enabled for your Google Cloud project.

  3. Installez la Google Cloud CLI.

  4. Configurez la gcloud CLI afin d'utiliser votre identité fédérée.

    Pour en savoir plus, consultez Se connecter à la gcloud CLI avec votre identité fédérée.

  5. Pour initialiser la gcloud CLI, exécutez la commande suivante :

    gcloud init
  6. Assurez-vous de connaître votre ID d'organisation.

Rôles requis

Pour obtenir les autorisations nécessaires pour gérer des règles d'administration personnalisées, demandez à votre administrateur de vous accorder le rôle IAM Administrateur des règles d'administration (roles/orgpolicy.policyAdmin) dans la ressource d'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 avec des rôles personnalisés ou d'autres rôles prédéfinis.

Ressources compatibles avec le service de transfert de stockage

Le tableau suivant répertorie les ressources du service de transfert de stockage que vous pouvez référencer dans les contraintes personnalisées.

Ressource Champ
storagetransfer.googleapis.com/TransferJob resource.description
resource.eventStream.eventStreamExpirationTime
resource.eventStream.eventStreamStartTime
resource.eventStream.name
resource.latestOperationName
resource.loggingConfig.enableOnpremGcsTransferLogs
resource.loggingConfig.logActions
resource.loggingConfig.logActionStates
resource.name
resource.notificationConfig.eventTypes
resource.notificationConfig.payloadFormat
resource.notificationConfig.pubsubTopic
resource.projectId
resource.replicationSpec.gcsDataSink.bucketName
resource.replicationSpec.gcsDataSink.managedFolderTransferEnabled
resource.replicationSpec.gcsDataSink.path
resource.replicationSpec.gcsDataSource.bucketName
resource.replicationSpec.gcsDataSource.managedFolderTransferEnabled
resource.replicationSpec.gcsDataSource.path
resource.replicationSpec.objectConditions.excludePrefixes
resource.replicationSpec.objectConditions.includePrefixes
resource.replicationSpec.objectConditions.lastModifiedBefore
resource.replicationSpec.objectConditions.lastModifiedSince
resource.replicationSpec.objectConditions.matchGlob
resource.replicationSpec.objectConditions.maxTimeElapsedSinceLastModification
resource.replicationSpec.objectConditions.minTimeElapsedSinceLastModification
resource.replicationSpec.transferOptions.deleteObjectsFromSourceAfterTransfer
resource.replicationSpec.transferOptions.deleteObjectsUniqueInSink
resource.replicationSpec.transferOptions.metadataOptions.acl
resource.replicationSpec.transferOptions.metadataOptions.gid
resource.replicationSpec.transferOptions.metadataOptions.kmsKey
resource.replicationSpec.transferOptions.metadataOptions.mode
resource.replicationSpec.transferOptions.metadataOptions.storageClass
resource.replicationSpec.transferOptions.metadataOptions.symlink
resource.replicationSpec.transferOptions.metadataOptions.temporaryHold
resource.replicationSpec.transferOptions.metadataOptions.timeCreated
resource.replicationSpec.transferOptions.metadataOptions.uid
resource.replicationSpec.transferOptions.overwriteObjectsAlreadyExistingInSink
resource.replicationSpec.transferOptions.overwriteWhen
resource.schedule.endTimeOfDay
resource.schedule.repeatInterval
resource.schedule.scheduleEndDate
resource.schedule.scheduleStartDate
resource.schedule.startTimeOfDay
resource.serviceAccount
resource.status
resource.transferSpec.awsS3CompatibleDataSource.bucketName
resource.transferSpec.awsS3CompatibleDataSource.endpoint
resource.transferSpec.awsS3CompatibleDataSource.path
resource.transferSpec.awsS3CompatibleDataSource.region
resource.transferSpec.awsS3CompatibleDataSource.s3Metadata.authMethod
resource.transferSpec.awsS3CompatibleDataSource.s3Metadata.listApi
resource.transferSpec.awsS3CompatibleDataSource.s3Metadata.protocol
resource.transferSpec.awsS3CompatibleDataSource.s3Metadata.requestModel
resource.transferSpec.awsS3DataSource.bucketName
resource.transferSpec.awsS3DataSource.cloudfrontDomain
resource.transferSpec.awsS3DataSource.managedPrivateNetwork
resource.transferSpec.awsS3DataSource.path
resource.transferSpec.awsS3DataSource.privateNetworkService
resource.transferSpec.awsS3DataSource.roleArn
resource.transferSpec.azureBlobStorageDataSource.container
resource.transferSpec.azureBlobStorageDataSource.federatedIdentityConfig.clientId
resource.transferSpec.azureBlobStorageDataSource.federatedIdentityConfig.tenantId
resource.transferSpec.azureBlobStorageDataSource.path
resource.transferSpec.azureBlobStorageDataSource.privateNetworkService
resource.transferSpec.azureBlobStorageDataSource.storageAccount
resource.transferSpec.gcsDataSink.bucketName
resource.transferSpec.gcsDataSink.managedFolderTransferEnabled
resource.transferSpec.gcsDataSink.path
resource.transferSpec.gcsDataSource.bucketName
resource.transferSpec.gcsDataSource.managedFolderTransferEnabled
resource.transferSpec.gcsDataSource.path
resource.transferSpec.gcsIntermediateDataLocation.bucketName
resource.transferSpec.gcsIntermediateDataLocation.managedFolderTransferEnabled
resource.transferSpec.gcsIntermediateDataLocation.path
resource.transferSpec.hdfsDataSource.path
resource.transferSpec.httpDataSource.listUrl
resource.transferSpec.objectConditions.excludePrefixes
resource.transferSpec.objectConditions.includePrefixes
resource.transferSpec.objectConditions.lastModifiedBefore
resource.transferSpec.objectConditions.lastModifiedSince
resource.transferSpec.objectConditions.matchGlob
resource.transferSpec.objectConditions.maxTimeElapsedSinceLastModification
resource.transferSpec.objectConditions.minTimeElapsedSinceLastModification
resource.transferSpec.posixDataSink.rootDirectory
resource.transferSpec.posixDataSource.rootDirectory
resource.transferSpec.sinkAgentPoolName
resource.transferSpec.sourceAgentPoolName
resource.transferSpec.transferManifest.location
resource.transferSpec.transferOptions.deleteObjectsFromSourceAfterTransfer
resource.transferSpec.transferOptions.deleteObjectsUniqueInSink
resource.transferSpec.transferOptions.metadataOptions.acl
resource.transferSpec.transferOptions.metadataOptions.gid
resource.transferSpec.transferOptions.metadataOptions.kmsKey
resource.transferSpec.transferOptions.metadataOptions.mode
resource.transferSpec.transferOptions.metadataOptions.storageClass
resource.transferSpec.transferOptions.metadataOptions.symlink
resource.transferSpec.transferOptions.metadataOptions.temporaryHold
resource.transferSpec.transferOptions.metadataOptions.timeCreated
resource.transferSpec.transferOptions.metadataOptions.uid