Sdílet prostřednictvím


Šifrování databáze s transparentním šifrováním dat ve službě SQL Managed Instance povolené službou Azure Arc

Tento článek popisuje, jak povolit transparentní šifrování dat v databázi vytvořené ve službě SQL Managed Instance s povolenou službou Azure Arc. V tomto článku termín spravovaná instance odkazuje na nasazení služby SQL Managed Instance povolené službou Azure Arc.

Požadavky

Než budete pokračovat v tomto článku, musíte mít vytvořenou instanci SQL Managed Instance vytvořenou prostředkem Azure Arc a připojit se k ní.

Zapnutí transparentního šifrování dat v databázi ve spravované instanci

Zapnutí transparentního šifrování dat ve spravované instanci se řídí stejným postupem jako místní SQL Server. Postupujte podle kroků popsaných v průvodci transparentním šifrováním dat SQL Serveru.

Po vytvoření nezbytných přihlašovacích údajů zálohujte všechny nově vytvořené přihlašovací údaje.

Zálohování přihlašovacích údajů transparentního šifrování dat

Při zálohování přihlašovacích údajů ze spravované instance se přihlašovací údaje ukládají v kontejneru. Pokud chcete přihlašovací údaje uložit na trvalý svazek, zadejte cestu připojení v kontejneru. Například var/opt/mssql/data. Následující příklad zálohuje certifikát ze spravované instance:

Poznámka:

kubectl cp Pokud je příkaz spuštěný z Windows, příkaz může selhat při použití absolutních cest systému Windows. Použijte relativní cesty nebo příkazy uvedené níže.

  1. Zálohujte certifikát z kontejneru do /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>');
    

    Příklad:

    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. Zkopírujte certifikát z kontejneru do systému souborů.

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

Příklad:

kubectl exec -n arc-ns -c arc-sqlmi sql-0 -- cat /var/opt/mssql/data/servercert.crt > $HOME\sqlcerts\servercert.crt
  1. Zkopírujte privátní klíč z kontejneru do systému souborů.
 kubectl exec -n <namespace> -c arc-sqlmi <pod-name> -- cat <pod-private-key-path> > <local-private-key-path>

Příklad:

kubectl exec -n arc-ns -c arc-sqlmi sql-0 -- cat /var/opt/mssql/data/servercert.key > $HOME\sqlcerts\servercert.key
  1. Odstraňte certifikát a privátní klíč z kontejneru.

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

    Příklad:

    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"
    

Obnovení přihlašovacích údajů transparentního šifrování dat do spravované instance

Podobně jako výše, pokud chcete obnovit přihlašovací údaje, zkopírujte je do kontejneru a potom spusťte odpovídající T-SQL.

Poznámka:

kubectl cp Pokud je příkaz spuštěný z Windows, příkaz může selhat při použití absolutních cest systému Windows. Použijte relativní cesty nebo příkazy uvedené níže.

  1. Zkopírujte certifikát z vašeho systému souborů do kontejneru.
type <local-certificate-path> | kubectl exec -i -n <namespace> -c arc-sqlmi <pod-name> -- tee <pod-certificate-path>

Příklad:

type $HOME\sqlcerts\servercert.crt | kubectl exec -i -n arc-ns -c arc-sqlmi sql-0 -- tee /var/opt/mssql/data/servercert.crt
  1. Zkopírujte privátní klíč z vašeho systému souborů do kontejneru.
type <local-private-key-path> | kubectl exec -i -n <namespace> -c arc-sqlmi <pod-name> -- tee <pod-private-key-path>

Příklad:

type $HOME\sqlcerts\servercert.key | kubectl exec -i -n arc-ns -c arc-sqlmi sql-0 -- tee /var/opt/mssql/data/servercert.key
  1. Vytvořte certifikát pomocí cest k souborům z /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>' );
    

    Příklad:

    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. Odstraňte certifikát a privátní klíč z kontejneru.

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

    Příklad:

    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"
    

Transparentní šifrování dat