Introducció a Azure Key Vault

Azure Key Vault és un servei de gestió de secrets que permet emmagatzemar i accedir a secrets de manera segura. Els secrets poden incloure claus d'encriptació, certificats, contrasenyes i altres dades sensibles. Key Vault ajuda a protegir aquestes dades mitjançant l'ús de mòduls de seguretat de maquinari (HSM) i altres mecanismes de seguretat avançats.

Objectius d'aprenentatge

  • Comprendre què és Azure Key Vault i per què és important.
  • Aprendre a crear i configurar un Key Vault.
  • Gestionar secrets, claus i certificats dins del Key Vault.
  • Integrar Key Vault amb altres serveis d'Azure.

Què és Azure Key Vault?

Azure Key Vault és un servei de gestió de secrets que proporciona una manera segura d'emmagatzemar i accedir a secrets com claus d'encriptació, certificats i contrasenyes. Els principals avantatges d'utilitzar Azure Key Vault inclouen:

  • Seguretat: Utilitza HSM per protegir les claus criptogràfiques.
  • Gestió centralitzada: Permet gestionar tots els secrets des d'un únic lloc.
  • Integració: Es pot integrar fàcilment amb altres serveis d'Azure.
  • Escalabilitat: Pot gestionar grans volums de secrets sense comprometre el rendiment.

Creació i configuració d'un Key Vault

Pas 1: Crear un Key Vault

  1. Accedeix al portal d'Azure.
  2. Navega a "Crear una recurs" i cerca "Key Vault".
  3. Selecciona "Key Vault" i fes clic a "Crear".
  4. Configura els paràmetres:
    • Nom: Proporciona un nom únic per al teu Key Vault.
    • Subscripció: Selecciona la subscripció adequada.
    • Grup de recursos: Selecciona un grup de recursos existent o crea'n un de nou.
    • Regió: Selecciona la regió on vols crear el Key Vault.
  5. Revisa i crea: Revisa la configuració i fes clic a "Crea".

Pas 2: Configurar l'accés

  1. Accedeix al teu Key Vault des del portal d'Azure.
  2. Navega a "Polítiques d'accés".
  3. Afegeix una nova política d'accés:
    • Permisos de secret: Selecciona els permisos necessaris (per exemple, "Get", "List", "Set").
    • Permisos de clau: Selecciona els permisos necessaris (per exemple, "Encrypt", "Decrypt").
    • Permisos de certificat: Selecciona els permisos necessaris (per exemple, "Get", "List").
  4. Assigna la política d'accés a un principal de seguretat (usuari, grup o aplicació).
  5. Guarda els canvis.

Gestió de secrets, claus i certificats

Secrets

Crear un secret

from azure.keyvault.secrets import SecretClient
from azure.identity import DefaultAzureCredential

# Configura el client
vault_url = "https://<your-key-vault-name>.vault.azure.net/"
credential = DefaultAzureCredential()
client = SecretClient(vault_url=vault_url, credential=credential)

# Crea un secret
secret_name = "mySecret"
secret_value = "mySecretValue"
client.set_secret(secret_name, secret_value)

Recuperar un secret

# Recupera un secret
retrieved_secret = client.get_secret(secret_name)
print(f"Secret: {retrieved_secret.value}")

Claus

Crear una clau

from azure.keyvault.keys import KeyClient
from azure.identity import DefaultAzureCredential

# Configura el client
key_client = KeyClient(vault_url=vault_url, credential=credential)

# Crea una clau
key_name = "myKey"
key = key_client.create_key(key_name, "RSA")
print(f"Clau creada: {key.name}")

Recuperar una clau

# Recupera una clau
retrieved_key = key_client.get_key(key_name)
print(f"Clau: {retrieved_key.name}")

Certificats

Crear un certificat

from azure.keyvault.certificates import CertificateClient
from azure.identity import DefaultAzureCredential

# Configura el client
cert_client = CertificateClient(vault_url=vault_url, credential=credential)

# Crea un certificat
cert_name = "myCert"
cert_policy = {
    "issuer_parameters": {"name": "Self"},
    "x509_certificate_properties": {
        "subject": "CN=MyCert",
        "validity_in_months": 12
    }
}
cert_client.begin_create_certificate(cert_name, cert_policy)
print(f"Certificat creat: {cert_name}")

Recuperar un certificat

# Recupera un certificat
retrieved_cert = cert_client.get_certificate(cert_name)
print(f"Certificat: {retrieved_cert.name}")

Integració amb altres serveis d'Azure

Azure Key Vault es pot integrar amb diversos serveis d'Azure per proporcionar una gestió segura de secrets. Alguns exemples inclouen:

  • Azure App Service: Per emmagatzemar secrets com cadenes de connexió de bases de dades.
  • Azure Functions: Per accedir a secrets durant l'execució de funcions.
  • Azure DevOps: Per gestionar secrets durant el procés de CI/CD.

Exercicis pràctics

Exercici 1: Crear i gestionar un secret

  1. Crea un Key Vault seguint els passos descrits anteriorment.
  2. Crea un secret anomenat "dbPassword" amb el valor "P@ssw0rd!".
  3. Recupera el secret i mostra el seu valor.

Solució

from azure.keyvault.secrets import SecretClient
from azure.identity import DefaultAzureCredential

# Configura el client
vault_url = "https://<your-key-vault-name>.vault.azure.net/"
credential = DefaultAzureCredential()
client = SecretClient(vault_url=vault_url, credential=credential)

# Crea un secret
secret_name = "dbPassword"
secret_value = "P@ssw0rd!"
client.set_secret(secret_name, secret_value)

# Recupera el secret
retrieved_secret = client.get_secret(secret_name)
print(f"Secret: {retrieved_secret.value}")

Exercici 2: Crear i gestionar una clau

  1. Crea una clau anomenada "encryptionKey" de tipus RSA.
  2. Recupera la clau i mostra el seu nom.

Solució

from azure.keyvault.keys import KeyClient
from azure.identity import DefaultAzureCredential

# Configura el client
vault_url = "https://<your-key-vault-name>.vault.azure.net/"
credential = DefaultAzureCredential()
key_client = KeyClient(vault_url=vault_url, credential=credential)

# Crea una clau
key_name = "encryptionKey"
key = key_client.create_key(key_name, "RSA")
print(f"Clau creada: {key.name}")

# Recupera la clau
retrieved_key = key_client.get_key(key_name)
print(f"Clau: {retrieved_key.name}")

Resum

En aquesta secció, hem après què és Azure Key Vault i com ens pot ajudar a gestionar secrets, claus i certificats de manera segura. Hem vist com crear i configurar un Key Vault, així com gestionar els seus continguts mitjançant exemples pràctics. També hem explorat com integrar Key Vault amb altres serveis d'Azure per millorar la seguretat de les nostres aplicacions.

En el següent mòdul, explorarem la protecció DDoS d'Azure i com podem utilitzar-la per protegir les nostres aplicacions contra atacs distribuïts de denegació de servei.

© Copyright 2024. Tots els drets reservats