Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Verschlüsseln Sie vertrauliche Kundeneingaben in Connect Customer
Sie können vertrauliche Daten verschlüsseln, die von Flows gesammelt werden. Dazu müssen Sie eine Kryptografie für öffentliche Schlüssel verwenden.
Bei der Konfiguration von Connect Customer geben Sie zunächst den öffentlichen Schlüssel an. Dies ist der Schlüssel, der beim Verschlüsseln von Daten verwendet wird. Später stellen Sie das X.509 Zertifikat bereit, das eine Signatur enthält, die beweist, dass Sie den privaten Schlüssel besitzen.
In einem Flow, der Daten sammelt, stellen Sie ein X.509 Zertifikat zur Verschlüsselung von Daten bereit, die mit dem Systemattribut Gespeicherte Kundeneingabe erfasst wurden. Sie müssen einen Schlüssel im .pem-Format hochladen, um dieses Feature verwenden zu können. Der Verschlüsselungsschlüssel wird zur Überprüfung der Signatur auf dem Zertifikat genutzt, das im Flow verwendet wird.
Anmerkung
Sie können bis zu zwei Verschlüsselungsschlüssel gleichzeitig aktiv haben, um die Rotation zu unterstützen.
Zum Entschlüsseln der Daten im Attribut Stored customer input (Gespeicherte Kundeneingabe) verwenden Sie das AWS Encryption SDK. Weitere Informationen finden Sie im AWS Encryption SDK -Entwicklerhandbuch.
So entschlüsseln Sie von Connect Customer verschlüsselte Daten
Das folgende Codebeispiel zeigt, wie Daten mit dem AWS Encryption SDK entschlüsselt werden.
package com.amazonaws; import com.amazonaws.encryptionsdk.AwsCrypto; import com.amazonaws.encryptionsdk.CryptoResult; import com.amazonaws.encryptionsdk.jce.JceMasterKey; import org.bouncycastle.jce.provider.BouncyCastleProvider; import java.io.IOException; import java.nio.charset.Charset; import java.nio.file.Files; import java.nio.file.Paths; import java.security.GeneralSecurityException; import java.security.KeyFactory; import java.security.Security; import java.security.interfaces.RSAPrivateKey; import java.security.spec.PKCS8EncodedKeySpec; import java.util.Base64; public class AmazonConnectDecryptionSample { // The Provider 'AmazonConnect' is used during encryption, this must be used during decryption for key // to be found private static final String PROVIDER = "AmazonConnect"; // The wrapping algorithm used during encryption private static final String WRAPPING_ALGORITHM = "RSA/ECB/OAEPWithSHA-512AndMGF1Padding"; /** * This sample show how to decrypt data encrypted by Amazon Connect. * To use, provide the following command line arguments: [path-to-private-key] [key-id] [cyphertext] * Where: * path-to-private-key is a file containing the PEM encoded private key to use for decryption * key-id is the key-id specified during encryption in your flow * cyphertext is the result of the encryption operation from Amazon Connect */ public static void main(String[] args) throws IOException, GeneralSecurityException { String privateKeyFile = args[0]; // path to PEM encoded private key to use for decryption String keyId = args[1]; // this is the id used for key in your flow String cypherText = args[2]; // the result from flow Security.addProvider(new BouncyCastleProvider()); // read the private key from file String privateKeyPem = new String(Files.readAllBytes(Paths.get(privateKeyFile)), Charset.forName("UTF-8")); RSAPrivateKey privateKey = getPrivateKey(privateKeyPem); AwsCrypto awsCrypto = new AwsCrypto(); JceMasterKey decMasterKey = JceMasterKey.getInstance(null,privateKey, PROVIDER, keyId, WRAPPING_ALGORITHM); CryptoResult<String, JceMasterKey> result = awsCrypto.decryptString(decMasterKey, cypherText); System.out.println("Decrypted: " + result.getResult()); } public static RSAPrivateKey getPrivateKey(String privateKeyPem) throws IOException, GeneralSecurityException { String privateKeyBase64 = privateKeyPem .replace("-----BEGIN RSA PRIVATE KEY-----\n", "") .replace("-----END RSA PRIVATE KEY-----", "") .replaceAll("\n", ""); byte[] decoded = Base64.getDecoder().decode(privateKeyBase64); KeyFactory kf = KeyFactory.getInstance("RSA"); PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(decoded); RSAPrivateKey privKey = (RSAPrivateKey) kf.generatePrivate(keySpec); return privKey; } }