Delen via


Een database versleutelen met transparante gegevensversleuteling op SQL Managed Instance ingeschakeld door Azure Arc

In dit artikel wordt beschreven hoe u transparante gegevensversleuteling inschakelt voor een database die is gemaakt in een met SQL beheerd exemplaar dat is ingeschakeld door Azure Arc. In dit artikel verwijst de term beheerd exemplaar naar een implementatie van SQL Managed Instance die is ingeschakeld door Azure Arc.

Vereisten

Voordat u verdergaat met dit artikel, moet u een met SQL beheerd exemplaar hebben ingeschakeld door azure Arc-resource die is gemaakt en er verbinding mee maken.

Transparante gegevensversleuteling inschakelen voor een database in het beheerde exemplaar

Het inschakelen van transparante gegevensversleuteling in het beheerde exemplaar volgt dezelfde stappen als SQL Server on-premises. Volg de stappen die worden beschreven in de handleiding voor transparante gegevensversleuteling van SQL Server.

Nadat u de benodigde referenties hebt gemaakt, maakt u een back-up van de zojuist gemaakte referenties.

Een back-up maken van een transparante gegevensversleutelingsreferentie

Wanneer u een back-up maakt van referenties van het beheerde exemplaar, worden de referenties opgeslagen in de container. Als u referenties wilt opslaan op een permanent volume, geeft u het koppelpad op in de container. Bijvoorbeeld: var/opt/mssql/data. In het volgende voorbeeld wordt een back-up van een certificaat van het beheerde exemplaar uitgevoerd:

Notitie

Als de kubectl cp opdracht wordt uitgevoerd vanuit Windows, kan de opdracht mislukken wanneer absolute Windows-paden worden gebruikt. Gebruik relatieve paden of de onderstaande opdrachten.

  1. Maak een back-up van het certificaat van de container naar /var/opt/mssql/data.

    USE master;
    GO
    
    BACKUP CERTIFICATE <cert-name> TO FILE = '<cert-path>'
    WITH PRIVATE KEY ( FILE = '<private-key-path>',
    ENCRYPTION BY PASSWORD = '<UseStrongPasswordHere>');
    

    Voorbeeld:

    USE master;
    GO
    
    BACKUP CERTIFICATE MyServerCert TO FILE = '/var/opt/mssql/data/servercert.crt'
    WITH PRIVATE KEY ( FILE = '/var/opt/mssql/data/servercert.key',
    ENCRYPTION BY PASSWORD = '<UseStrongPasswordHere>');
    
  2. Kopieer het certificaat van de container naar uw bestandssysteem.

kubectl exec -n <namespace> -c arc-sqlmi <pod-name> -- cat <pod-certificate-path> > <local-certificate-path>

Voorbeeld:

kubectl exec -n arc-ns -c arc-sqlmi sql-0 -- cat /var/opt/mssql/data/servercert.crt > $HOME\sqlcerts\servercert.crt
  1. Kopieer de persoonlijke sleutel van de container naar uw bestandssysteem.
 kubectl exec -n <namespace> -c arc-sqlmi <pod-name> -- cat <pod-private-key-path> > <local-private-key-path>

Voorbeeld:

kubectl exec -n arc-ns -c arc-sqlmi sql-0 -- cat /var/opt/mssql/data/servercert.key > $HOME\sqlcerts\servercert.key
  1. Verwijder het certificaat en de persoonlijke sleutel uit de container.

    kubectl exec -it --namespace <namespace> --container arc-sqlmi <pod-name> -- bash -c "rm <certificate-path> <private-key-path>
    

    Voorbeeld:

    kubectl exec -it --namespace arc-ns --container arc-sqlmi sql-0 -- bash -c "rm /var/opt/mssql/data/servercert.crt /var/opt/mssql/data/servercert.key"
    

Een referentie voor transparante gegevensversleuteling herstellen naar een beheerd exemplaar

Net als hierboven kunt u de referenties herstellen, kopieert u deze naar de container en voert u daarna de bijbehorende T-SQL uit.

Notitie

Als de kubectl cp opdracht wordt uitgevoerd vanuit Windows, kan de opdracht mislukken wanneer absolute Windows-paden worden gebruikt. Gebruik relatieve paden of de onderstaande opdrachten.

  1. Kopieer het certificaat van uw bestandssysteem naar de container.
type <local-certificate-path> | kubectl exec -i -n <namespace> -c arc-sqlmi <pod-name> -- tee <pod-certificate-path>

Voorbeeld:

type $HOME\sqlcerts\servercert.crt | kubectl exec -i -n arc-ns -c arc-sqlmi sql-0 -- tee /var/opt/mssql/data/servercert.crt
  1. Kopieer de persoonlijke sleutel van uw bestandssysteem naar de container.
type <local-private-key-path> | kubectl exec -i -n <namespace> -c arc-sqlmi <pod-name> -- tee <pod-private-key-path>

Voorbeeld:

type $HOME\sqlcerts\servercert.key | kubectl exec -i -n arc-ns -c arc-sqlmi sql-0 -- tee /var/opt/mssql/data/servercert.key
  1. Maak het certificaat met bestandspaden van /var/opt/mssql/data.

    USE master;
    GO
    
    CREATE CERTIFICATE <certicate-name>
    FROM FILE = '<certificate-path>'
    WITH PRIVATE KEY ( FILE = '<private-key-path>',
        DECRYPTION BY PASSWORD = '<UseStrongPasswordHere>' );
    

    Voorbeeld:

    USE master;
    GO
    
    CREATE CERTIFICATE MyServerCertRestored
    FROM FILE = '/var/opt/mssql/data/servercert.crt'
    WITH PRIVATE KEY ( FILE = '/var/opt/mssql/data/servercert.key',
        DECRYPTION BY PASSWORD = '<UseStrongPasswordHere>' );
    
  2. Verwijder het certificaat en de persoonlijke sleutel uit de container.

    kubectl exec -it --namespace <namespace> --container arc-sqlmi <pod-name> -- bash -c "rm <certificate-path> <private-key-path>
    

    Voorbeeld:

    kubectl exec -it --namespace arc-ns --container arc-sqlmi sql-0 -- bash -c "rm /var/opt/mssql/data/servercert.crt /var/opt/mssql/data/servercert.key"
    

Transparante gegevensversleuteling