Introducció a AWS KMS
AWS Key Management Service (KMS) és un servei gestionat que facilita la creació i el control de les claus de xifratge utilitzades per protegir les dades. KMS permet gestionar les claus de xifratge de manera centralitzada i segura, integrant-se amb altres serveis d'AWS per proporcionar una solució completa de seguretat.
Objectius d'aprenentatge
Al final d'aquest tema, hauràs de ser capaç de:
- Comprendre què és AWS KMS i per què és important.
- Crear i gestionar claus mestres de clients (CMK).
- Utilitzar AWS KMS per xifrar i desxifrar dades.
- Integrar AWS KMS amb altres serveis d'AWS.
Conceptes clau
Què és AWS KMS?
AWS KMS és un servei que permet crear, gestionar i controlar les claus de xifratge utilitzades per protegir les dades. Proporciona una manera segura i escalable de gestionar les claus de xifratge, amb integració nativa amb molts serveis d'AWS.
Característiques principals
- Gestió centralitzada de claus: Permet crear, gestionar i controlar les claus de xifratge des d'una única ubicació.
- Integració amb altres serveis d'AWS: Es pot utilitzar amb serveis com Amazon S3, Amazon EBS, Amazon RDS, entre d'altres.
- Alta disponibilitat i durabilitat: AWS KMS està dissenyat per ser altament disponible i durador.
- Auditoria i registre: Integra amb AWS CloudTrail per proporcionar registres detallats de l'ús de les claus.
Creació i gestió de claus mestres de clients (CMK)
Tipus de claus mestres
- Claus gestionades per AWS: Claus creades i gestionades automàticament per AWS per a serveis específics.
- Claus gestionades pel client: Claus creades i gestionades pel client, proporcionant més control sobre les polítiques de claus i permisos.
Crear una CMK
- Accedeix a la consola de gestió d'AWS.
- Navega a AWS KMS.
- Selecciona "Create key".
- Tria el tipus de clau (Simètrica o Asimètrica).
- Configura els permisos per a la clau.
- Finalitza la creació de la clau.
Exemple pràctic: Crear una CMK
1. Accedeix a la consola de gestió d'AWS. 2. Navega a AWS KMS. 3. Fes clic a "Create key". 4. Selecciona "Symmetric" i fes clic a "Next". 5. Assigna un àlies a la clau, per exemple, "my-sample-key". 6. Configura els permisos d'administració i ús de la clau. 7. Revisa la configuració i fes clic a "Create key".
Xifrar i desxifrar dades amb AWS KMS
Xifrar dades
Per xifrar dades amb AWS KMS, pots utilitzar l'SDK d'AWS o la consola de gestió. Aquí tens un exemple utilitzant l'SDK de Python (Boto3):
import boto3 # Crear un client de KMS kms_client = boto3.client('kms') # Text pla a xifrar plaintext = b'Hello, this is a secret message!' # Xifrar el text pla response = kms_client.encrypt( KeyId='arn:aws:kms:region:account-id:key/key-id', Plaintext=plaintext ) ciphertext = response['CiphertextBlob'] print(f'Ciphertext: {ciphertext}')
Desxifrar dades
Per desxifrar dades, pots utilitzar el mateix client de KMS:
# Desxifrar el text xifrat response = kms_client.decrypt( CiphertextBlob=ciphertext ) decrypted_text = response['Plaintext'] print(f'Decrypted text: {decrypted_text.decode("utf-8")}')
Integració amb altres serveis d'AWS
Amazon S3
Pots utilitzar AWS KMS per xifrar objectes emmagatzemats a Amazon S3. Quan crees un bucket o carregues un objecte, pots especificar una CMK per xifrar les dades.
Amazon RDS
AWS KMS es pot utilitzar per xifrar bases de dades a Amazon RDS. Pots seleccionar una CMK durant la creació de la instància de RDS.
Amazon EBS
Pots xifrar volums d'EBS utilitzant AWS KMS. Quan crees un volum, pots especificar una CMK per xifrar les dades.
Exercicis pràctics
Exercici 1: Crear i gestionar una CMK
- Accedeix a la consola de gestió d'AWS.
- Navega a AWS KMS.
- Crea una clau mestra de client (CMK) amb un àlies de la teva elecció.
- Configura els permisos per a la clau.
- Revisa la configuració i crea la clau.
Exercici 2: Xifrar i desxifrar dades
- Utilitza l'SDK de Python (Boto3) per xifrar un text pla utilitzant la CMK creada en l'exercici anterior.
- Desxifra el text xifrat i verifica que coincideix amb el text original.
Solucions
Solució a l'Exercici 1
Segueix els passos detallats a la secció "Crear una CMK" per completar aquest exercici.
Solució a l'Exercici 2
import boto3 # Crear un client de KMS kms_client = boto3.client('kms') # Text pla a xifrar plaintext = b'Hello, this is a secret message!' # Xifrar el text pla response = kms_client.encrypt( KeyId='arn:aws:kms:region:account-id:key/key-id', Plaintext=plaintext ) ciphertext = response['CiphertextBlob'] print(f'Ciphertext: {ciphertext}') # Desxifrar el text xifrat response = kms_client.decrypt( CiphertextBlob=ciphertext ) decrypted_text = response['Plaintext'] print(f'Decrypted text: {decrypted_text.decode("utf-8")}')
Resum
En aquest tema, hem après què és AWS KMS i com es pot utilitzar per gestionar claus de xifratge de manera centralitzada i segura. Hem vist com crear i gestionar CMKs, xifrar i desxifrar dades, i integrar AWS KMS amb altres serveis d'AWS. Els exercicis pràctics proporcionats t'ajudaran a consolidar aquests coneixements i a aplicar-los en situacions reals.