Ingestion de données chiffrées
Créé pour :
- Développeur
Vous pouvez ingérer des fichiers de données chiffrés vers Adobe Experience Platform à l’aide de sources de lots de stockage dans le cloud. Avec l’ingestion de données chiffrées, vous pouvez utiliser des mécanismes de chiffrement asymétrique pour transférer en toute sécurité des données par lots dans Experience Platform. Actuellement, les mécanismes de chiffrement asymétrique pris en charge sont PGP et GPG.
Le processus d’ingestion des données chiffrées est le suivant :
- Créer une paire de clés de chiffrement à l’aide des API d’Experience Platform. La paire de clés de chiffrement se compose d’une clé privée et d’une clé publique. Une fois créée, vous pouvez copier ou télécharger la clé publique, ainsi que son identifiant de clé publique correspondant et sa date d’expiration. Au cours de ce processus, la clé privée sera stockée par Experience Platform dans un coffre sécurisé. REMARQUE : la clé publique de la réponse est codée en Base64 et doit être décodée avant utilisation.
- Utilisez la clé publique pour chiffrer le fichier de données à ingérer.
- Placez votre fichier chiffré dans votre espace de stockage dans le cloud.
- Une fois le fichier chiffré prêt, créez une connexion source et un flux de données pour votre source d’espace de stockage dans le cloud. Lors de l’étape de création de flux, vous devez fournir un paramètre
encryption
et inclure votre identifiant de clé publique. - Experience Platform récupère la clé privée dans le coffre sécurisé pour déchiffrer les données au moment de l’ingestion.
Ce document décrit les étapes à suivre pour générer une paire de clés de chiffrement pour vos données et ingérer ces données chiffrées sur Experience Platform à l’aide de sources d’espace de stockage dans le cloud.
Commencer
Ce tutoriel nécessite une compréhension du fonctionnement des composants suivants d’Adobe Experience Platform :
- Sources : Experience Platform permet d’ingérer des données provenant de diverses sources tout en vous offrant la possibilité de structurer, d’étiqueter et d’améliorer les données entrantes à l’aide des services d’Experience Platform.
- Sources d‘espace de stockage dans le cloud : créez un flux de données pour importer les données par lots de votre source d’espace de stockage dans le cloud vers Experience Platform.
- Sandbox : Experience Platform fournit des sandbox virtuels qui divisent une instance Experience Platform unique en environnements virtuels distincts pour favoriser le développement et l’évolution d’applications d’expérience digitale.
Utilisation des API Experience Platform
Pour plus d’informations sur la manière d’effectuer avec succès des appels vers les API Experience Platform, consultez le guide Prise en main des API Experience Platform.
Extensions de fichiers prises en charge pour les fichiers chiffrés
La liste des extensions de fichier prises en charge pour les fichiers chiffrés est la suivante :
- .csv
- .tsv
- .json
- .parquet
- .csv.gpg
- .tsv.gpg
- .json.gpg
- .parquet.gpg
- .csv.pgp
- .tsv.pgp
- .json.pgp
- .parquet.pgp
- .gpg
- .pgp
Créer une paire de clés de chiffrement
La première étape de l’ingestion de données chiffrées sur Experience Platform consiste à créer votre paire de clés de chiffrement en effectuant une requête POST au point d’entrée /encryption/keys
de l‘API Connectors.
Format d’API
POST /data/foundation/connectors/encryption/keys
Requête
La requête suivante génère une paire de clés de chiffrement à l’aide de l’algorithme de chiffrement PGP.
curl -X POST \
'https://platform.adobe.io/data/foundation/connectors/encryption/keys' \
-H 'Authorization: Bearer {{ACCESS_TOKEN}}' \
-H 'x-api-key: {{API_KEY}}' \
-H 'x-gw-ims-org-id: {{ORG_ID}}' \
-H 'x-sandbox-name: {{SANDBOX_NAME}}' \
-H 'Content-Type: application/json'
-d '{
"name": "acme-encryption",
"encryptionAlgorithm": "PGP",
"params": {
"passPhrase": "{{PASSPHRASE}}"
}
}'
name
encryptionAlgorithm
PGP
et GPG
.params.passPhrase
Réponse
Une réponse réussie renvoie votre clé publique codée en Base64, votre identifiant de clé publique et la date d’expiration de vos clés. La date d’expiration est automatiquement définie sur 180 jours après la date de génération de la clé. La date d’expiration ne peut actuellement pas être configurée.
{
"publicKey": "{PUBLIC_KEY}",
"publicKeyId": "{PUBLIC_KEY_ID}",
"expiryTime": "1684843168"
}
publicKey
publicKeyId
expiryTime
Récupération des clés de chiffrement
Pour récupérer toutes les clés de chiffrement de votre organisation, envoyez une requête GET au point d’entrée /encryption/keys
=nt.
Format d’API
GET /data/foundation/connectors/encryption/keys
Requête
La requête suivante récupère toutes les clés de chiffrement de votre organisation.
curl -X GET \
'https://platform.adobe.io/data/foundation/connectors/encryption/keys' \
-H 'Authorization: Bearer {{ACCESS_TOKEN}}' \
-H 'x-api-key: {{API_KEY}}' \
-H 'x-gw-ims-org-id: {{ORG_ID}}' \
Réponse
Une réponse réussie renvoie l’algorithme de chiffrement, le nom, la clé publique, l’ID de clé publique, le type de clé et l’heure d’expiration correspondante de vos clés.
{
"encryptionAlgorithm": "{ENCRYPTION_ALGORITHM}",
"name": "{NAME}",
"publicKeyId": "{PUBLIC_KEY_ID}",
"publicKey": "{PUBLIC_KEY}",
"keyType": "{KEY_TYPE}",
"expiryTime": "{EXPIRY_TIME}"
}
Récupération des clés de chiffrement par ID
Pour récupérer un ensemble spécifique de clés de chiffrement, envoyez une requête GET au point d’entrée /encryption/keys
et indiquez votre identifiant de clé publique comme paramètre d’en-tête.
Format d’API
GET /data/foundation/connectors/encryption/keys/{PUBLIC_KEY_ID}
Requête
curl -X GET \
'https://platform.adobe.io/data/foundation/connectors/encryption/keys/{publicKeyId}' \
-H 'Authorization: Bearer {{ACCESS_TOKEN}}' \
-H 'x-api-key: {{API_KEY}}' \
-H 'x-gw-ims-org-id: {{ORG_ID}}' \
Réponse
Une réponse réussie renvoie l’algorithme de chiffrement, le nom, la clé publique, l’ID de clé publique, le type de clé et l’heure d’expiration correspondante de vos clés.
{
"encryptionAlgorithm": "{ENCRYPTION_ALGORITHM}",
"name": "{NAME}",
"publicKeyId": "{PUBLIC_KEY_ID}",
"publicKey": "{PUBLIC_KEY}",
"keyType": "{KEY_TYPE}",
"expiryTime": "{EXPIRY_TIME}"
}
Créer une paire de clés gérée par le client ou la cliente
Si vous le souhaitez, vous pouvez créer une paire de clés de vérification de signature pour signer et ingérer vos données chiffrées.
Pendant cette étape, vous devez générer votre propre combinaison de clé privée et de clé publique, puis utiliser votre clé privée pour signer vos données chiffrées. Ensuite, vous devez coder votre clé publique en Base64, puis la partager avec Experience Platform pour qu’Experience Platform vérifie votre signature.
Partager votre clé publique avec Experience Platform
Pour partager votre clé publique, envoyez une requête POST au point d’entée /customer-keys
en spécifiant l’algorithme de chiffrement et la clé publique codée au format Base64.
Format d’API
POST /data/foundation/connectors/encryption/customer-keys
Requête
curl -X POST \
'https://platform.adobe.io/data/foundation/connectors/encryption/customer-keys' \
-H 'Authorization: Bearer {{ACCESS_TOKEN}}' \
-H 'x-api-key: {{API_KEY}}' \
-H 'x-gw-ims-org-id: {{ORG_ID}}' \
-H 'x-sandbox-name: {{SANDBOX_NAME}}' \
-H 'Content-Type: application/json'
-d '{
"name": "acme-sign-verification-keys"
"encryptionAlgorithm": {{ENCRYPTION_ALGORITHM}},
"publicKey": {{BASE_64_ENCODED_PUBLIC_KEY}},
"params": {
"passPhrase": {{PASS_PHRASE}}
}
}'
encryptionAlgorithm
PGP
et GPG
.publicKey
Réponse
{
"publicKeyId": "e31ae895-7896-469a-8e06-eb9207ddf1c2"
}
publicKeyId
Récupérer une paire de clés gérée par le client
Pour récupérer vos clés gérées par le client, envoyez une requête GET au point d’entrée /customer-keys
.
Format d’API
GET /data/foundation/connectors/encryption/customer-keys
Requête
curl -X GET \
'https://platform.adobe.io/data/foundation/connectors/encryption/customer-keys' \
-H 'Authorization: Bearer {{ACCESS_TOKEN}}' \
-H 'x-api-key: {{API_KEY}}' \
-H 'x-gw-ims-org-id: {{ORG_ID}}' \
Réponse
[
{
"encryptionAlgorithm": "{ENCRYPTION_ALGORITHM}",
"name": "{NAME}",
"publicKeyId": "{PUBLIC_KEY_ID}",
"publicKey": "{PUBLIC_KEY}",
"keyType": "{KEY_TYPE}",
}
]
Connecter votre source d‘espace de stockage dans le cloud à Experience Platform à l’aide de l’API Flow Service
Une fois que vous avez récupéré votre paire de clés de chiffrement, vous pouvez procéder à la création d’une connexion source pour votre source d’espace de stockage dans le cloud et importer vos données chiffrées dans Experience Platform.
Tout d’abord, vous devez créer une connexion de base pour authentifier votre source sur Experience Platform. Pour créer une connexion de base et authentifier votre source, sélectionnez la source que vous souhaitez utiliser dans la liste ci-dessous :
Après avoir créé une connexion de base, vous devez suivre les étapes décrites dans le tutoriel pour créer une connexion source pour une source de stockage dans le cloud afin de créer une connexion source, une connexion cible et un mappage.
Créer un flux de données pour les données chiffrées
Pour créer un flux de données, envoyez une requête POST au point d’entrée /flows
de l’API Flow Service. Pour ingérer des données chiffrées, vous devez ajouter une section encryption
à la propriété transformations
et inclure l’publicKeyId
qui a été créé lors d’une précédente étape.
Format d’API
POST /flows
Requête
La requête suivante crée un flux de données pour ingérer des données chiffrées pour une source d’espace de stockage dans le cloud.
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/flows' \
-H 'x-api-key: {{API_KEY}}' \
-H 'x-gw-ims-org-id: {{ORG_ID}}' \
-H 'x-sandbox-name: {{SANDBOX_NAME}}' \
-H 'Content-Type: application/json' \
-d '{
"name": "ACME Customer Data",
"description": "ACME Customer Data (Encrypted)",
"flowSpec": {
"id": "9753525b-82c7-4dce-8a9b-5ccfce2b9876",
"version": "1.0"
},
"sourceConnectionIds": [
"655f7c1b-1977-49b3-a429-51379ecf0e15"
],
"targetConnectionIds": [
"de688225-d619-481c-ae3b-40c250fd7c79"
],
"transformations": [
{
"name": "Mapping",
"params": {
"mappingId": "6b6e24213dbe4f57bd8207d21034ff03",
"mappingVersion":"0"
}
},
{
"name": "Encryption",
"params": {
"publicKeyId":"311ef6f8-9bcd-48cf-a9e9-d12c45fb7a17"
}
}
],
"scheduleParams": {
"startTime": "1675793392",
"frequency": "once"
}
}'
flowSpec.id
sourceConnectionIds
targetConnectionIds
transformations[x].params.mappingId
transformations.name
Encryption
comme paramètre de transformations supplémentaire pour votre flux de données.transformations[x].params.publicKeyId
scheduleParams.startTime
scheduleParams.frequency
once
, minute
, hour
, day
ou week
.scheduleParams.interval
once
et doit être supérieur ou égal à 15
pour d’autres valeurs de fréquence.Réponse
Une réponse réussie renvoie l’identifiant (id
) du nouveau flux de données créé pour vos données chiffrées.
{
"id": "dbc5c132-bc2a-4625-85c1-32bc2a262558",
"etag": "\"8e000533-0000-0200-0000-5f3c40fd0000\""
}
Requête
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/flows' \
-H 'x-api-key: {{API_KEY}}' \
-H 'x-gw-ims-org-id: {{ORG_ID}}' \
-H 'x-sandbox-name: {{SANDBOX_NAME}}' \
-H 'Content-Type: application/json' \
-d '{
"name": "ACME Customer Data (with Sign Verification)",
"description": "ACME Customer Data (with Sign Verification)",
"flowSpec": {
"id": "9753525b-82c7-4dce-8a9b-5ccfce2b9876",
"version": "1.0"
},
"sourceConnectionIds": [
"655f7c1b-1977-49b3-a429-51379ecf0e15"
],
"targetConnectionIds": [
"de688225-d619-481c-ae3b-40c250fd7c79"
],
"transformations": [
{
"name": "Mapping",
"params": {
"mappingId": "6b6e24213dbe4f57bd8207d21034ff03",
"mappingVersion":"0"
}
},
{
"name": "Encryption",
"params": {
"publicKeyId":"311ef6f8-9bcd-48cf-a9e9-d12c45fb7a17",
"signVerificationKeyId":"e31ae895-7896-469a-8e06-eb9207ddf1c2"
}
}
],
"scheduleParams": {
"startTime": "1675793392",
"frequency": "once"
}
}'
params.signVerificationKeyId
Réponse
Une réponse réussie renvoie l’identifiant (id
) du nouveau flux de données créé pour vos données chiffrées.
{
"id": "dbc5c132-bc2a-4625-85c1-32bc2a262558",
"etag": "\"8e000533-0000-0200-0000-5f3c40fd0000\""
}
Supprimer les clés de chiffrement
Pour supprimer vos clés de chiffrement, envoyez une requête DELETE au point d’entrée /encryption/keys
et indiquez votre identifiant de clé publique comme paramètre d’en-tête.
Format d’API
DELETE /data/foundation/connectors/encryption/keys/{PUBLIC_KEY_ID}
Requête
curl -X DELETE \
'https://platform.adobe.io/data/foundation/connectors/encryption/keys/{publicKeyId}' \
-H 'Authorization: Bearer {{ACCESS_TOKEN}}' \
-H 'x-api-key: {{API_KEY}}' \
-H 'x-gw-ims-org-id: {{ORG_ID}}' \
Réponse
Une réponse réussie renvoie un état HTTP 204 (Pas de contenu) et un corps vide.
Validation des clés de chiffrement
Pour valider vos clés de chiffrement, envoyez une requête GET au point d’entrée /encryption/keys/validate/
et indiquez l’identifiant de clé publique à valider comme paramètre d’en-tête.
GET /data/foundation/connectors/encryption/keys/validate/{PUBLIC_KEY_ID}
Requête
curl -X GET \
'https://platform.adobe.io/data/foundation/connectors/encryption/keys/validate/{publicKeyId}' \
-H 'Authorization: Bearer {{ACCESS_TOKEN}}' \
-H 'x-api-key: {{API_KEY}}' \
-H 'x-gw-ims-org-id: {{ORG_ID}}' \
Réponse
Une réponse réussie renvoie une confirmation que vos identifiants sont valides ou non valides.
Un ID de clé publique valide renvoie un statut de Active
avec votre ID de clé publique.
{
"publicKeyId": "{PUBLIC_KEY_ID}",
"status": "Active"
}
Un ID de clé publique non valide renvoie un statut de Expired
avec votre ID de clé publique.
{
"publicKeyId": "{PUBLIC_KEY_ID}",
"status": "Expired"
}
Restrictions relatives à l’ingestion récurrente
L’ingestion de données chiffrées ne prend pas en charge l’ingestion de dossiers récurrents ou à plusieurs niveaux dans les sources. Tous les fichiers chiffrés doivent être contenus dans un seul dossier. Les caractères génériques avec plusieurs dossiers dans un seul chemin source ne sont pas non plus pris en charge.
Voici un exemple de structure de dossiers prise en charge, où le chemin d’accès source est /ACME-customers/*.csv.gpg
.
Dans ce scénario, les fichiers en gras sont ingérés dans Experience Platform.
-
ACME-customers
- Fichier1.csv.gpg
- File2.json.gpg
- Fichier3.csv.gpg
- File4.json
- Fichier5.csv.gpg
Voici un exemple de structure de dossiers non prise en charge dans laquelle le chemin d’accès source est /ACME-customers/*
.
Dans ce scénario, l’exécution du flux échoue et renvoie un message d’erreur indiquant que les données ne peuvent pas être copiées à partir de la source.
-
ACME-customers
-
File1.csv.gpg
-
File2.json.gpg
-
Sous-dossier1
- File3.csv.gpg
- File4.json.gpg
- File5.csv.gpg
-
-
ACME-loyalty
- File6.csv.gpg
Étapes suivantes
En suivant ce tutoriel, vous avez créé une paire de clés de chiffrement pour vos données d’espace de stockage dans le cloud et un flux de données pour ingérer vos données chiffrées à l’aide de Flow Service API. Pour connaître les mises à jour de statut sur l’exhaustivité, les erreurs et les mesures de votre flux de données, consultez le guide sur la surveillance de votre flux de données à l’aide de l’API Flow Service.