Povolení transparentního šifrování dat ve službě SQL Managed Instance povolené službou Azure Arc (Preview)

Tento článek popisuje, jak povolit a zakázat transparentní šifrování neaktivních uložených dat ve službě SQL Managed Instance povolené službou Azure Arc. V tomto článku se termín spravovaný instance týká nasazení služby SQL Managed Instance povolené službou Azure Arc a povolení/zakázání transparentního šifrování dat se použije pro všechny databáze spuštěné ve spravované instanci.

Další informace o transparentním šifrování dat najdete v tématu Transparentní šifrování dat.

Zapnutí funkce transparentního šifrování dat provede následující:

  • Všechny existující databáze se teď automaticky zašifrují.
  • Všechny nově vytvořené databáze se automaticky zašifrují.

Poznámka:

Jako funkce ve verzi Preview platí, že technologie uvedená v tomto článku podléhá dodatečným podmínkám použití pro verze Microsoft Azure Preview.

Nejnovější aktualizace jsou k dispozici v poznámkách k verzi.

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í.

Omezení

Při povolení automatického transparentního šifrování dat platí následující omezení:

  • Podporuje se jenom úroveň Pro obecné účely.
  • Skupiny převzetí služeb při selhání se nepodporují.

Vytvoření spravované instance s povoleným transparentním šifrováním dat (Azure CLI)

Následující příklad vytvoří spravovanou instanci SQL povolenou službou Azure Arc s jednou replikou, povolenou transparentním šifrováním dat:

az sql mi-arc create --name sqlmi-tde --k8s-namespace arc --tde-mode ServiceManaged --use-k8s

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

Pokud je transparentní šifrování dat povolené ve službě SQL Managed Instance s podporou arc, datová služba automaticky provádí následující úlohy:

  1. Přidá hlavní klíč databáze spravované službou master do databáze.
  2. Přidá ochranu certifikátů spravovanou službou.
  3. Přidá přidružené šifrovací klíče databáze (DEK) pro všechny databáze ve spravované instanci.
  4. Povolí šifrování pro všechny databáze ve spravované instanci.

Spravovanou instanci SQL povolenou transparentním šifrováním dat Azure Arc můžete nastavit v jednom ze dvou režimů:

  • Spravovaná službami
  • Spravovaná zákazníkem

Transparentní šifrování dat v režimu spravovaném službou vyžaduje, aby spravovaná instance používala hlavní klíč databáze spravované službou i certifikát serveru spravovaného službou. Tyto přihlašovací údaje se automaticky vytvoří, když je povolené transparentní šifrování dat spravované službou.

V režimu spravovaném zákazníkem používá transparentní šifrování dat hlavní klíč databáze spravované službou a používá klíče, které poskytnete pro certifikát serveru. Konfigurace režimu spravovaného zákazníkem:

  1. Vytvořte certifikát.
  2. Uložte certifikát jako tajný klíč do stejného oboru názvů Kubernetes jako instance.

Povolit

Následující část vysvětluje, jak povolit transparentní šifrování dat v režimu spravovaném službou.

Pokud chcete transparentní šifrování dat povolit v režimu spravovaném službou, spusťte následující příkaz:

az sql mi-arc update --tde-mode ServiceManaged

Vypnutí transparentního šifrování dat ve spravované instanci

Pokud je transparentní šifrování dat ve spravované instanci SQL s podporou arc zakázané, datová služba automaticky provede následující úlohy:

  1. Zakáže šifrování všech databází ve spravované instanci.
  2. Zahodí přidružené sady DEK ve všech databázích ve spravované instanci.
  3. Zahodí ochranu certifikátů spravovanou službou.
  4. Zahodí hlavní klíč databáze spravované službou master v databázi.

Zakázání transparentního šifrování dat:

az sql mi-arc update --tde-mode Disabled

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. Pokud chcete obnovit zálohy databáze, které byly provedeny před povolením transparentního šifrování dat, budete muset ve spravované instanci SQL zakázat transparentní šifrování dat, obnovit zálohu databáze a znovu povolit transparentní šifrování dat.

  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
    
  2. 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>' );
    
  3. 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