Verwenden von SSL mit einer Microsoft SQL Server-DB-Instance - Amazon Relational Database Service

Verwenden von SSL mit einer Microsoft SQL Server-DB-Instance

Sie können Ihre Secure Sockets Layer (SSL) zum Verschlüsseln von Verbindungen zwischen Ihren Client-Anwendungen und Ihren Amazon RDS-DB-Instances verwenden, auf denen Microsoft SQL Server ausgeführt wird. SSL-Support ist in allen AWS-Regionen für alle unterstützten SQL Server-Editionen verfügbar.

Wenn Sie eine SQL Server-DB-Instance erstellen, erstellt Amazon RDS ein SSL-Zertifikat für sie. Das SSL-Zertifikat enthält den DB-Instance-Endpunkt als allgemeinen Name (Common Name CN) für das SSL-Zertifikat, um gegen Spoofing-Angriffe zu schützen.

Es gibt 2 Möglichkeiten, SSL zu verwenden, um eine Verbindung zu Ihrer SQL Server-DB-Instance zu erstellen:

  • SSL für alle Verbindungen erzwingen – erfolgt für den Kunden transparent; der Kunde muss nichts unternehmen, um SSL verwenden zu können.

  • Spezifische Verbindungen verschlüsseln – richtet eine SSL-Verbindung von einem spezifischen Client-PC ein; Sie müssen Aktionen auf dem Client ausführen, um Verbindungen zu verschlüsseln.

Weitere Informationen zur Unterstützung von Transport Layer Security (TLS) für SQL Server finden Sie unter TLS 1.2-Support für Microsoft SQL Server.

Erzwingen von Verbindungen mit Ihrer DB-Instance, um SSL zu verwenden

Sie können festlegen, dass für alle Verbindungen zu Ihrer DB-Instance SSL verwendet werden soll. Wenn Sie Verbindungen erzwingen, um SSL zu verwenden, erfolgt dies für den Kunden transparent, der Kunde muss nichts tun, um SSL verwenden zu können.

Wenn Sie SSL erzwingen möchten, verwenden Sie den rds.force_ssl-Parameter. Standardmäßig ist der rds.force_ssl-Parameter auf 0 (off) festgelegt. Setzen Sie den rds.force_ssl-Parameter auf 1 (on), um Verbindungen zu erzwingen und SSL zu verwenden. Der rds.force_ssl-Parameter ist statisch, daher müssen Sie nach dem Ändern des Werts Ihre DB-Instance neu starten, damit die Änderung übernommen wird.

So legen Sie fest, dass für alle Verbindungen zu Ihrer DB-Instance SSL verwendet wird

  1. Bestimmen Sie die Parametergruppe, die an Ihre DB-Instance angefügt ist:

    1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon RDS-Konsole unter https://console.aws.amazon.com/rds/.

    2. Wählen Sie oben rechts in der Amazon RDS-Konsole die AWS-Region Ihrer DB-Instance aus.

    3. Wählen Sie im Navigationsbereich Databases (Datenbanken) und dann den Namen Ihrer DB-Instance aus, um deren Details anzuzeigen.

    4. Wählen Sie die Registerkarte Konfiguration aus. Suchen Sie die Parametergruppe im Abschnitt.

  2. Falls erforderlich, erstellen Sie eine neue Parametergruppe. Falls Ihre DB-Instance die standardmäßige Parametergruppe verwendet, müssen Sie eine neue Parametergruppe erstellen. Falls Ihre DB-Instance eine nicht standardmäßige Parametergruppe verwendet, können Sie die vorhandene Parametergruppe bearbeiten oder eine neue Parametergruppe erstellen. Falls Sie eine vorhandene Parametergruppe bearbeiten, wirkt sich die Änderung auf alle DB-Instances aus, die diese Parametergruppe verwenden.

    Befolgen Sie die Anweisungen in Erstellen einer DB-Parametergruppe, um eine neue Parametergruppe zu erstellen.

  3. Bearbeiten Sie Ihre neue oder vorhandene Parametergruppe, um den rds.force_ssl-Parameter auf true zu setzen. Befolgen Sie die Anweisungen in Ändern von Parametern in einer DB-Parametergruppe, um die Parametergruppe zu bearbeiten.

  4. Falls Sie eine neue Parametergruppe erstellt haben, ändern Sie Ihre DB-Instance, um die neue Parametergruppe anzufügen. Ändern Sie die Einstellung DB-Parametergruppe der DB-Instance. Weitere Informationen finden Sie unter Ändern einer Amazon RDS-DB-Instance.

  5. Starten Sie Ihre DB-Instance neu. Weitere Informationen finden Sie unter Neustarten einer DB-Instance.

Verschlüsseln spezifischer Verbindungen

Sie können für alle Verbindungen zu Ihrer DB-Instance erzwingen, dass sie SSL verwenden, oder Verbindungen nur von spezifischen Client-Computern verschlüsseln. Um SSL auf einem spezifischen Client zu verwenden, müssen Sie Zertifikate für den Client-Computer abrufen, die Zertifikate auf dem Client-Computer importieren und dann die Verbindungen vom Client-Computer aus verschlüsseln.

Anmerkung

Alle nach dem 5. August 2014 erstellten SQL Server-Instances verwenden den DB-Instance-Endpunkt im Common Name (CN)-Feld des SSL-Zertifikats. Vor dem 5. August 2014 war die Verifizierung des SSL-Zertifikats für VPC-basierte SQL Server-Instances nicht verfügbar. Falls Sie über eine VPC-basierte SQL Server-DB-Instance verfügen, die vor dem 5. August 2014 erstellt wurde, und Sie eine Verifizierung des SSL-Zertifikats verwenden möchten und sicherstellen möchten, dass der Instance-Endpunkt als CN für das SSL-Zertifikat für diese DB-Instance enthalten ist, benennen Sie die Instance um. Wenn Sie eine DB-Instance umbenennen, wird ein neues Zertifikat bereitgestellt und die Instance neu gestartet, um das neue Zertifikat zu aktivieren.

Herunterladen von Zertifikaten für Client-Computer

Zum Verschlüsseln von Verbindungen von einem Client-Computer mit einer Amazon RDS-DB-Instance, auf der Microsoft SQL Server ausgeführt wird, benötigen Sie ein Zertifikat auf Ihrem Client-Computer.

Laden Sie das Zertifikat auf Ihren Client-Computer herunter. Sie können ein Stammzertifikat herunterladen, das für alle Regionen funktioniert. Sie können auch ein Zertifikatpaket herunterladen, das sowohl das alte als auch das neue Stammzertifikat enthält. Zusätzlich können Sie regionsspezifische Zwischenzertifikate herunterladen. Weitere Informationen zum Herunterladen von Zertifikaten finden Sie unter Verwenden von SSL/TLS für die Verschlüsselung einer Verbindung zu einer DB-Instance.

Nach dem Herunterladen des entsprechenden Zertifikats importieren Sie es anhand der Vorgehensweise im folgenden Abschnitt in Ihr Microsoft Windows-Betriebssystem.

Importieren von Zertifikaten in Client-Computer

Sie können die folgende Vorgehensweise verwenden, um Ihr Zertifikat in das Microsoft Windows-Betriebssystem auf Ihrem Client-Computer zu importieren.

So importieren Sie das Zertifikat in Ihr Windows-Betriebssystem:

  1. Geben Sie im Menü Start den Befehl Run in das Suchfeld ein und drücken Sie die Eingabetaste.

  2. Geben Sie in das Feld Öffnen MMC ein und wählen Sie dann OK.

  3. Wählen Sie in der MMC-Konsole im Menü File (Datei) die Option Add/Remove Snap-in (Snap-in hinzufügen/entfernen).

  4. Wählen Sie im Dialogfeld Add or Remove Snap-ins (Snap-ins hinzufügen oder entfernen) für Available snap-ins (Verfügbare Snap-ins) die Option Certificates und dann Hinzufügen aus.

  5. Wählen Sie im Dialogfeld Certificates snap-in (Snap-In-Zertifikate) die Option Computer account (Computerkonto) aus und klicken Sie anschließend auf Weiter.

  6. Wählen Sie im Dialogfeld Select Computer (Computer auswählen) die Option Beenden aus.

  7. Wählen Sie im Dialogfeld Add or Remove Snap-ins (Snap-ins hinzufügen oder entfernen) OK aus.

  8. Erweitern Sie in der MMC-Konsole Zertifikate, öffnen Sie per Rechtsklick das Kontextmenü für Trusted Root Certification Authorities (Vertrauenswürdige Stammzertifizierungsstellen), wählen Sie All Tasks (Alle Aufgaben) und wählen Sie dann Importieren.

  9. Wählen Sie auf der ersten Seite des Assistenten zum Importieren von Zertifikaten Weiter.

  10. Wählen Sie auf der zweiten Seite des Assistenten zum Importieren von Zertifikaten Durchsuchen. Ändern Sie im Suchfenster den Dateityp auf All files (*.*) (Alle Dateien (*.*)), da PEM keine standardmäßige Zertifikatserweiterung ist. Suchen Sie die PEM-Datei, die Sie zuvor heruntergeladen haben.

  11. Wählen Sie Öffnen, um die Zertifikatdatei auszuwählen und wählen Sie dann Weiter.

  12. Wählen Sie auf der dritten Seite des Assistenten zum Importieren von Zertifikaten Weiter.

  13. Wählen Sie auf der vierten Seite des Assistenten zum Importieren von Zertifikaten Beenden. Ein Dialogfeld zeigt an, dass der Import erfolgreich war.

  14. Erweitern Sie in der MMC-Konsole Zertifikate und Trusted Root Certification Authorities (Vertrauenswürdige Stammzertifizierungsstellen) und wählen Sie dann Zertifikate. Suchen Sie das Zertifikat, um zu bestätigen, dass es existiert, wie hier gezeigt.

  15. Starten Sie Ihren Computer neu.

Verschlüsseln von Verbindungen mit einer Amazon RDS-DB-Instance, die mit Microsoft SQL Server ausgeführt wird

Nach dem Importieren eines Zertifikats in Ihren Client-Computer können Sie Ihre Verbindungen vom Client-Computer mit einer Amazon RDS-DB-Instance, auf der Microsoft SQL Server ausgeführt wird, verschlüsseln.

Verwenden Sie für SQL Server Management Studio die folgende Vorgehensweise. Weitere Informationen über SQL Server Management Studio finden Sie unter SQL Server Management Studio verwenden.

So verschlüsseln Sie Verbindungen von SQL Server Management Studio

  1. Starten Sie SQL Server Management Studio.

  2. Geben Sie für Connect to server (Mit Server verbinden) die Serverinformationen, den Anmeldebenutzernamen und das Passwort ein.

  3. Wählen Sie Optionen aus.

  4. Wählen Sie Encrypt connection (Verbindungen verschlüsseln) aus.

  5. Wählen Sie Connect (Verbinden) aus.

  6. Prüfen Sie, ob Ihre Verbindung verschlüsselt ist, indem Sie die folgende Abfrage ausführen. Die Abfrage muss true für encrypt_option zurückgeben.

    select ENCRYPT_OPTION from SYS.DM_EXEC_CONNECTIONS where SESSION_ID = @@SPID

Verwenden Sie für jeden anderen SQL-Client die folgende Vorgehensweise.

So verschlüsseln Sie Verbindungen von anderen SQL-Clients

  1. Fügen Sie encrypt=true an Ihre Verbindungszeichenfolge an. Diese Zeichenfolge ist möglicherweise als Option oder als Eigenschaft auf der Verbindungsseite in den GUI-Tools verfügbar.

    Anmerkung

    Zum Aktivieren der SSL-Verschlüsselung für Clients, die Verbindungen mittels JDBC herstellen, müssen Sie möglicherweise das Amazon RDS-SQL-Zertifikat zum Java CA-Zertifikat-Store (cacerts) hinzufügen. Dies erledigen Sie mithilfe des Dienstprogramms Keytool.

  2. Prüfen Sie, ob Ihre Verbindung verschlüsselt ist, indem Sie die folgende Abfrage ausführen. Die Abfrage muss true für encrypt_option zurückgeben.

    select ENCRYPT_OPTION from SYS.DM_EXEC_CONNECTIONS where SESSION_ID = @@SPID