Verschlüsselung im Jitterbit App Builder
Übersicht
App Builder verwendet Verschlüsselung aus zwei Gründen:
- Schutz von Sicherheitstoken wie Sitzungscookies
- Verschlüsselung auf Anwendungsebene
Beide verwenden dieselbe zugrunde liegende Verschlüsselung. Insbesondere verwenden sie die ASP.Net Data Protection API. Obwohl App Builder versucht, die Data Protection-Bibliothek automatisch zu konfigurieren, können zusätzliche Konfigurationen erforderlich sein.
Verschlüsselung
Datenverschlüsselungsschlüssel (DEKs) sind symmetrische Verschlüsselung zum Schutz von Daten. App Builder unterstützt mehrere konfigurierbare Richtlinien für Schlüsselspeicherung und Verschlüsselung. Administratoren müssen die passenden Richtlinien für ihre Umfeld auswählen.
Lagerung
App Builder unterstützt die folgenden Schlüsselspeicherrichtlinien:
- Dateisystem, entweder lokal oder als Netzwerkfreigabe
- Datenbank Amazon Web Services (AWS) S3
- AWS Systems Manager Parameter Store
Verschlüsselung
Je nach Speicherort sollten Administratoren die Verschlüsselung von Schlüsseln in Betracht ziehen. 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 erfolgen:
{
"DataEncryption": {
"KeyStorage": "FileSystem",
"KeyEncryption": "None"
}
}
Die Konfiguration kann auch durch Umfeld bereitgestellt werden:
export DATAENCRYPTION__KEYSTORAGE=FileSystem
export DATAENCRYPTION__KEYENCRYPTION=None
Siehe App Builder beim Start konfigurieren für weitere Informationen.
Lagerung
Dateisystem
Standardmäßig speichert App Builder Schlüssel im Dateisystem als Klartext. Sie werden im Verzeichnis keys unterhalb des App Builder-Installationsverzeichnisses gespeichert.
Einstellungen
Einstellung | Beispiel | Hinweise |
---|---|---|
Schlüsselspeicher | FileSystem | Gibt an, dass App Builder Schlüssel im Dateisystem speichern soll. Dies ist die Standardrichtlinie. |
Verzeichnis | keys | Gibt das Verzeichnis an, in dem die Schlüssel gespeichert werden. Standardmäßig ist das Verzeichnis keys unterhalb des App Builder-Installationsverzeichnisses. Der App Builder-Prozess benötigt die volle Zugriffsberechtigung auf dieses Verzeichnis. Unter Windows wird dies durch die Erteilung der Benutzerberechtigung für den IIS-Anwendungspool erreicht. |
Beispiel
{
"DataEncryption": {
"KeyStorage": "FileSystem",
"Directory": "keys"
}
}
Datenbank
Schlüssel können in der * App Builder*-Datenbank gespeichert werden. Beachten Sie, dass die Schlüssel selbst verschlüsselt werden sollten, da sie zum verschlüsseln von Daten verwendet werden, die ebenfalls in der Datenbank gespeichert sind.
Einstellungen
Einstellung | Beispiel | Hinweise |
---|---|---|
Schlüsselspeicher | Database | Gibt an, dass App Builder Schlüssel in der App Builder-Datenbank speichern soll. |
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 langfristige Persistenz verwendet. Alternativ unterstützt App Builder die Speicherung von Schlüsseln in S3-Buckets.
Einstellungen
Einstellung | Beispiel | Hinweise |
---|---|---|
Schlüsselspeicher | S3 | Gibt an, dass App Builder Schlüssel in einem AWS S3-Bucket speichern soll. |
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 die 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 von EC2-Instanzen wird üblicherweise 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 dem Key Management Service (KMS) verschlüsselt werden.
Einstellungen
Einstellung | Beispiel | Hinweise |
---|---|---|
Schlüsselspeicher | ParameterStore | Gibt an, dass App Builder Schlüssel im AWS Systems Manager Parameter Store speichern soll. |
ParameterNamePrefix | /production | Isoliert Schlüssel nach Präfix. |
KmsKeyId | arn:aws:kms:us-east-1:1234567890:key/1234abcd-12ab-34cd-56ef-1234567890ab | Optional. Gibt den KMS-Schlüssel an, 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 verschlüsseln App Builder 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-kodiertes PKCS#12 (PFX)-Zertifikat mit privatem Schlüssel bereitgestellt werden. Erfordert Zertifikatskennwort. | |
CertificatePassword | X.509-Zertifikatskennwort. | |
CertificateThumbprint | Fingerabdruck des X.509-Zertifikats. App Builder versucht, das Zertifikat aus dem persönlichen Zertifikatspeicher des Kontos Lokaler Computer 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 | Gibt an, dass App Builder Schlüssel mit AWS KMS verschlüsseln soll. |
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 die Verwendung einer Rolle in Betracht ziehen, 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} |
Vorsicht
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 für die Windows Cryptography API (CAPI). CAPI ist veraltet. Dieser Anbieter wird daher nicht unterstützt. - Cryptography Next Generation (CNG) - Die vom CNG-Anbieter implementierten Algorithmen sind in der Regel FIPS-konform. Dies ist der Standard-Kryptografieanbieter. - Verwaltet - Die von diesem Anbieter implementierten Algorithmen sind in der Regel nicht FIPS-konform. Sie können langsamer sein als vergleichbare 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 Systemstart importiert werden. Dies geschieht typischerweise, um Schlüssel von einem Speicherort an einen anderen zu migrieren. Dabei werden die 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"
}
}
}