Verschlüsselung im Jitterbit App Builder
Übersicht
App Builder verwendet Verschlüsselung für zwei Zwecke:
- Schutz von Sicherheitstoken wie Sitzungscookies
- Verschlüsselung auf Anwendungsebene
Beide verwenden die gleiche zugrunde liegende Verschlüsselung. Genauer gesagt verwenden sie die ASP.Net Data Protection API. Obwohl App Builder versucht, die Datenschutzbibliothek automatisch zu konfigurieren. Möglicherweise sind zusätzliche Konfigurationen erforderlich.
Verschlüsselung
Data Encryption Keys (DEKs) sind symmetrische Verschlüsselung zum Schutz von Daten. App Builder unterstützt mehrere konfigurierbare Schlüsselspeicher- und Verschlüsselung. Administratoren müssen die geeigneten Richtlinien für ihre Umfeld auswählen.
Lagerung
App Builder unterstützt die folgenden Schlüsselspeicherrichtlinien:
- Dateisystem, entweder lokal oder Netzwerkfreigabe
- Datenbank
- Amazon Web Services (AWS) S3
- AWS Systems Manager Parameter Store
Verschlüsselung
Je nach Speicherort sollten Administratoren über die Verschlüsselung von Schlüsseln nachdenken. App Builder unterstützt die folgenden Verschlüsselung:
- Zertifikat AWS-Schlüsselverwaltungsdienst
Konfiguration
Schlüsselspeicher- und Verschlüsselung werden beim Start konfiguriert. Die Konfiguration kann mithilfe der Datei appsettings.json bereitgestellt werden:
{
"DataEncryption": {
"KeyStorage": "FileSystem",
"KeyEncryption": "None"
}
}
Die Konfiguration kann auch durch Umfeld bereitgestellt werden:
export DATAENCRYPTION__KEYSTORAGE=FileSystem
export DATAENCRYPTION__KEYENCRYPTION=None
Siehe Konfigurieren App Builder beim Start für weitere Informationen.
Lagerung
Dateisystem
Standardmäßig App Builder speichert Schlüssel im Dateisystem als Klartext. Sie werden im Verzeichnis keys unter dem App Builder Installationsverzeichnis.
Einstellungen
Einstellung | Beispiel | Hinweise |
---|---|---|
Schlüsselspeicher | FileSystem | Zeigt an, dass App Builder sollte Schlüssel im Dateisystem speichern. Dies ist die Standardrichtlinie. |
Verzeichnis | keys | Gibt das Verzeichnis an, in dem die Schlüssel gespeichert werden. Standardmäßig ist dies das Verzeichnis keys unter dem App Builder Installationsverzeichnis. Das App Builder Der Prozess muss über die volle Kontrolle über dieses Verzeichnis verfügen. Unter Windows wird dies erreicht, indem dem IIS-Anwendungspool Benutzerberechtigungen erteilt werden. |
Beispiel
{
"DataEncryption": {
"KeyStorage": "FileSystem",
"Directory": "keys"
}
}
Datenbank
Schlüssel können gespeichert werden im App Builder Datenbank. Beachten Sie, dass die Schlüssel selbst verschlüsselt sein sollten, da sie zum verschlüsseln von Daten verwendet werden, die auch in der Datenbank gespeichert sind.
Einstellungen
Einstellung | Beispiel | Hinweise |
---|---|---|
Schlüsselspeicher | Database | Zeigt an, dass App Builder sollte Schlüssel im speichern App Builder Datenbank. |
Beispiel
{
"DataEncryption": {
"KeyStorage": "Database",
"KeyEncryption": "Certificate",
"Certificate": "...base64-encoded...",
"CertificatePassword": "password"
}
}
AWS S3
Der lokale Speicher einer EC2-Instanz wird normalerweise nicht für die Langzeitpersistenz verwendet. Als Alternative: App Builder unterstützt das Speichern von Schlüsseln in S3-Buckets.
Einstellungen
Einstellung | Beispiel | Hinweise |
---|---|---|
Schlüsselspeicher | S3 | Zeigt an, dass App Builder sollte Schlüssel in einem AWS S3-Bucket speichern. |
S3BucketEndpoint | https://s3.amazonaws.com/vinyl-data-encryption-keys -oder- https://vinyl-data-encryption-keys.s3.amazonaws.com/ | Identifiziert die AWS-Region und den S3-Bucket, in dem S3-Schlüssel gespeichert werden. Die URL muss eine der folgenden Formen haben:
|
S3KeyPrefix | dev | Optional. Ermöglicht mehreren Umgebungen, Schlüssel im selben Bucket zu speichern und die Schlüssel nach Präfix zu isolieren. |
Beispiel
{
"DataEncryption": {
"KeyStorage": "S3",
"S3BucketEndpoint": "https://{bucket}.s3{-aws-region}.amazonaws.com",
"S3KeyPrefix": "production"
}
}
AWS Systems Manager-Parameterspeicher
Der lokale Speicher einer EC2-Instanz wird normalerweise nicht für die langfristige Persistenz verwendet. Alternativ können Schlüssel im AWS Systems Manager Parameter Store gespeichert werden. Im Parameter Store gespeicherte Schlüssel können mit Key Management Service (KMS) verschlüsselt werden.
Einstellungen
Einstellung | Beispiel | Hinweise |
---|---|---|
Schlüsselspeicher | ParameterStore | Zeigt an, dass App Builder sollte Schlüssel im AWS Systems Manager Parameter Store speichern. |
ParameterNamePrefix | /production | Isoliert Schlüssel nach Präfix. |
KmsKeyId | arn:aws:kms:us-east-1:1234567890:key/1234abcd-12ab-34cd-56ef-1234567890ab | Optional. Identifiziert den KMS-Schlüssel, der zum verschlüsseln von Schlüsseln verwendet werden soll. Der Wert sollte die Form eines Amazon Resource Name (ARN) haben. |
Beispiel
{
"DataEncryption": {
"KeyStorage": "ParameterStore",
"ParameterNamePrefix": "/production",
"KmsKeyId": "arn:aws:kms:us-east-1:1234567890:key/1234abcd-12ab-34cd-56ef-1234567890ab"
}
}
Verschlüsselung
Keine
Standardmäßig App Builder verschlüsseln keine Schlüssel. Schlüssel können jedoch basierend auf der Speicherrichtlinie transparent verschlüsselt werden. Beispielsweise kann ein S3-Bucket so konfiguriert werden, dass alle Daten verschlüsseln werden.
Einstellungen
Einstellung | Beispiel | Hinweise |
---|---|---|
Schlüsselverschlüsselung | None | Gibt an, dass Schlüssel im Klartext gespeichert werden sollen. |
Beispiel
{
"DataEncryption": {
"KeyStorage": "FileSystem",
"KeyEncryption": "None"
}
}
Zertifikat
Schlüssel können mit einem X.509-Zertifikat verschlüsselt werden.
Einstellungen
Einstellung | Beispiel | Hinweise |
---|---|---|
Schlüsselverschlüsselung | Certificate | Gibt an, dass Schlüssel mit einem X.509-Zertifikat verschlüsselt werden sollen. Administratoren müssen entweder Certificate oder CertificateThumbprint angeben. |
Zertifikat | X.509-Zertifikat. Das Zertifikat muss als Base64-codiertes PKCS#12 (PFX) mit privatem Schlüssel bereitgestellt werden. Erfordert CertificatePassword. | |
CertificatePassword | X.509-Zertifikatskennwort. | |
CertificateThumbprint | Fingerabdruck des X.509-Zertifikats. App Builder versucht, das Zertifikat aus dem Persönlichen Zertifikatspeicher des Lokalen Computers-Kontos zu laden. |
Beispiel
{
"DataEncryption": {
"KeyStorage": "FileSystem",
"CertificateThumbprint": "C123B3E899807189F11F0EC4AC320760F00ECE34"
}
}
AWS-Schlüsselverwaltungsdienst
App Builder kann so konfiguriert werden, dass Schlüssel mit AWS Key Management Service (KMS) verschlüsseln werden.
Einstellungen
Einstellung | Beispiel | Hinweise |
---|---|---|
Schlüsselverschlüsselung | Kms | Zeigt an, dass App Builder sollte Schlüssel mit AWS KMS verschlüsseln. |
KmsKeyId | arn:aws:kms:us-east-1:1234567890:key/1234abcd-12ab-34cd-56ef-1234567890ab | Identifiziert den KMS-Schlüssel, der zum verschlüsseln von Schlüsseln verwendet werden soll. Der Wert sollte die Form eines Amazon Resource Name (ARN) haben. |
Beispiel
{
"DataEncryption": {
"KeyStorage": "Database",
"KeyEncryption": "Kms",
"KmsKeyId": "arn:aws:kms:us-east-1:1234567890:key/1234abcd-12ab-34cd-56ef-1234567890ab"
}
}
Amazon Web Services
S3-Bucket-Richtlinie
Wenn Sie Verschlüsselung in einem S3-Bucket speichern, sollten Sie die Verwendung einer Rolle in Betracht ziehen, um der EC2-Instanz Zugriff auf den Bucket zu gewähren.
Beispiel
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": "arn:aws:s3:::{bucket-name}/*"
},
{
"Effect": "Allow",
"Action": [
"s3:ListAllMyBuckets",
"s3:GetBucketLocation",
"s3:ListBucket"
],
"Resource": "*"
}
]
}
KMS-Schlüsselrichtlinie
Wenn Sie Schlüssel mit KMS verschlüsseln, sollten Sie eine Rolle verwenden, um der EC3-Instanz Zugriff auf den Schlüssel zu gewähren.
Beispiel
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Action": [
"kms:GenerateDataKey",
"kms:Encrypt",
"kms:Decrypt"
],
"Resource": [
"arn:aws:kms:us-west-2:1234567890:key/1234abcd-12ab-34cd-56ef-1234567890ab"
]
}
}
Elastische Bohnenstange
App Builder wird mit einem .ebextensions Script geliefert, das die Umfeld automatisch registriert.
Standardeinstellungen
Die Standardkonfiguration von Elastic Beanstalk variiert je nach Version von App Builder.
Einstellung | 3.2 und niedriger | 3.3 und höher |
---|---|---|
Schlüsselspeicher | S3 | Database |
S3BucketEndpoint | https://{bucket}.s3{-aws-region}.amazonaws.com | |
S3BucketPrefix | {elastic-beanstalk-environment-name} | |
Schlüsselverschlüsselung | Kms | |
KmsKeyId | {kms-key-arn} |
Achtung
App Builder startet nicht mit den Umfeld von Elastic Beanstalk. Administratoren müssen die KmsKeyId ändern oder eine alternative Verschlüsselung auswählen.
Kryptografieanbieter
App Builder ist eine .NET-Anwendung. In .NET können Implementierungen kryptografischer Algorithmen von einem von drei Kryptografieanbietern bereitgestellt werden.
- Crypto Service Provider (CSP) - Der Crypto Service Provider ist ein Wrapper um die Windows Cryptography API (CAPI). CAPI ist veraltet. Dieser Anbieter wird daher nicht unterstützt.
- Cryptography Next Generation (CNG) - Vom CNG-Anbieter implementierte Algorithmen sind normalerweise FIPS-kompatibel. Dies ist der Standard-Kryptografieanbieter.
- Verwaltet - Die von diesem Anbieter implementierten Algorithmen sind normalerweise nicht FIPS-kompatibel. Sie können langsamer sein als entsprechende CNG-Implementierungen. Verwaltete Implementierungen werden jedoch mit .NET ausgeliefert und sind daher auf allen Plattformen verfügbar.
Einstellungen
Einstellung | Beispiel | Hinweise |
---|---|---|
KryptoProvider | Cng | Bestimmt den Krypto-Anbieter. Gültige Werte sind:
|
Beispiel
{
"DataEncryption": {
"CryptoProvider": "Managed"
}
}
Import
Verschlüsselung können beim Start importiert werden. Normalerweise wird dies durchgeführt, um Schlüssel von einem Speicherort an einen anderen zu migrieren. Dabei werden Schlüssel entschlüsselt und verschlüsselt.
Einstellungen
Einstellung | Beispiel | Hinweise |
---|---|---|
Importieren | Alternativer Satz von Schlüsselspeicher- und Verschlüsselung. |
Beispiel
{
"DataEncryption": {
"KeyStorage": "Database",
"KeyEncryption": "Certificate",
"Certificate": "...base64-encoded...",
"CertificatePassword": "password",
"Import": {
"KeyStorage": "FileSystem",
"Directory": "keys"
}
}
}