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
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Installez la Google Cloud CLI.
-
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.
-
Pour initialiser la gcloud CLI, exécutez la commande suivante :
gcloud init - 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
|