Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Blocca l'accesso pubblico ad Amazon RDS utilizzando Cloud Custodian
Creato da abhay kumar (AWS) e Dwarika Patra (AWS)
Riepilogo
Molte organizzazioni gestiscono i propri carichi di lavoro e servizi su più fornitori di cloud. In questi ambienti cloud ibridi, l'infrastruttura cloud richiede una rigida governance del cloud, oltre alla sicurezza fornita dai singoli provider di cloud. Un database cloud come Amazon Relational Database Service (Amazon RDS) è un servizio importante che deve essere monitorato per eventuali vulnerabilità di accesso e autorizzazione. Sebbene sia possibile limitare l'accesso al database Amazon RDS configurando un gruppo di sicurezza, è possibile aggiungere un secondo livello di protezione per vietare azioni come l'accesso pubblico. Garantire che l'accesso pubblico sia bloccato ti aiuterà a rispettare il Regolamento generale sulla protezione dei dati (GDPR), l'Health Insurance Portability and Accountability Act (HIPAA), il National Institute of Standards and Technology (NIST) e il Payment Card Industry Data Security Standard (PCI DSS).
Cloud Custodian è un motore di regole open source che puoi utilizzare per imporre restrizioni di accesso alle risorse di Amazon Web Services (AWS) come Amazon RDS. Con Cloud Custodian, puoi impostare regole che convalidano l'ambiente rispetto a standard di sicurezza e conformità definiti. Puoi utilizzare Cloud Custodian per gestire i tuoi ambienti cloud contribuendo a garantire la conformità con le politiche di sicurezza, le politiche di tag e la raccolta dei rifiuti di risorse inutilizzate e la gestione dei costi. Con Cloud Custodian, puoi utilizzare un'unica interfaccia per implementare la governance in un ambiente cloud ibrido. Ad esempio, puoi utilizzare l'interfaccia Cloud Custodian per interagire con AWS e Microsoft Azure, riducendo lo sforzo di lavorare con meccanismi come AWS Config, gruppi di sicurezza AWS e policy di Azure.
Questo modello fornisce istruzioni per utilizzare Cloud Custodian su AWS per imporre la restrizione dell'accessibilità pubblica sulle istanze Amazon RDS.
Prerequisiti e limitazioni
Prerequisiti
Un account AWS attivo
AWS Lambda installato
Architettura
Stack tecnologico Target
Amazon RDS
AWS CloudTrail
AWS Lambda
Cloud Custodian
Architettura Target
Il diagramma seguente mostra Cloud Custodian che distribuisce la policy su Lambda, CloudTrail AWS che avvia l'CreateDBInstance
evento e l'impostazione della funzione Lambda su false su Amazon RDS. PubliclyAccessible

Strumenti
Servizi AWS
AWS ti CloudTrail aiuta a controllare la governance, la conformità e il rischio operativo del tuo account AWS.
AWS Command Line Interface (AWS CLI) è uno strumento open source che ti aiuta a interagire con i servizi AWS tramite comandi nella shell della riga di comando.
AWS Identity and Access Management (IAM) ti aiuta a gestire in modo sicuro l'accesso alle tue risorse AWS controllando chi è autenticato e autorizzato a utilizzarle.
AWS Lambda è un servizio di elaborazione che ti aiuta a eseguire codice senza dover fornire o gestire server. Esegue il codice solo quando necessario e si ridimensiona automaticamente, quindi paghi solo per il tempo di calcolo che utilizzi.
Amazon Relational Database Service (Amazon RDS) ti aiuta a configurare, gestire e scalare un database relazionale nel cloud AWS.
Altri strumenti
Cloud Custodian
unifica gli strumenti e gli script utilizzati da molte organizzazioni per gestire i propri account cloud pubblici in un unico strumento open source. Utilizza un motore di regole stateless per la definizione e l'applicazione delle politiche, con metriche, output strutturati e report dettagliati per l'infrastruttura cloud. Si integra perfettamente con un runtime serverless per fornire correzioni e risposte in tempo reale con un basso sovraccarico operativo.
Epiche
Attività | Descrizione | Competenze richieste |
---|---|---|
Installa AWS CLI. | Per installare AWS CLI, segui le istruzioni nella documentazione AWS. | Amministratore AWS |
Configura le credenziali AWS. | Configura le impostazioni che l'AWS CLI utilizza per interagire con AWS, inclusa la regione AWS e il formato di output che desideri utilizzare.
Per ulteriori informazioni, consulta la documentazione di AWS. | Amministratore AWS |
Crea un ruolo IAM. | Per creare un ruolo IAM con il ruolo di esecuzione Lambda, esegui il comando seguente.
| AWS DevOps |
Attività | Descrizione | Competenze richieste |
---|---|---|
Installa Cloud Custodian. | DevOps ingegnere | |
Controlla lo schema Cloud Custodian. | Per visualizzare l'elenco completo delle risorse Amazon RDS su cui è possibile eseguire le policy, usa il comando seguente.
| DevOps ingegnere |
Crea la policy Cloud Custodian. | Salva il codice contenuto nel file di policy di Cloud Custodian nella sezione Informazioni aggiuntive utilizzando un'estensione YAML. | DevOps ingegnere |
Definisci le azioni di Cloud Custodian per modificare il flag accessibile al pubblico. |
| DevOps ingegnere |
Esegui una corsa a secco. | (Facoltativo) Per verificare quali risorse sono identificate dalla policy senza eseguire alcuna azione sulle risorse, utilizzate il comando seguente.
| DevOps ingegnere |
Attività | Descrizione | Competenze richieste |
---|---|---|
Implementa la policy utilizzando Lambda. | Per creare la funzione Lambda che eseguirà la policy, utilizzare il comando seguente.
Questa policy verrà quindi avviata dall' CloudTrail Di conseguenza, AWS Lambda imposterà il flag accessibile al pubblico su false per le istanze che soddisfano i criteri. | DevOps ingegnere |
Risorse correlate
Informazioni aggiuntive
File YAML della politica di Cloud Custodian
policies:
- name: "block-public-access"
resource: rds
description: |
This Enforcement blocks public access for RDS instances.
mode:
type: cloudtrail
events:
- event: CreateDBInstance # Create RDS instance cloudtrail event
source: rds.amazonaws.com
ids: requestParameters.dBInstanceIdentifier
role: arn:aws:iam::1234567890:role/Custodian-compliance-role
filters:
- type: event
key: 'detail.requestParameters.publiclyAccessible'
value: true
actions:
- type: set-public-access
state: false
file rds.py di risorse c7n
@actions.register('set-public-access')
class RDSSetPublicAvailability(BaseAction):
schema = type_schema(
"set-public-access",
state={'type': 'boolean'})
permissions = ('rds:ModifyDBInstance',)
def set_accessibility(self, r):
client = local_session(self.manager.session_factory).client('rds')
waiter = client.get_waiter('db_instance_available')
waiter.wait(DBInstanceIdentifier=r['DBInstanceIdentifier'])
client.modify_db_instance(
DBInstanceIdentifier=r['DBInstanceIdentifier'],
PubliclyAccessible=self.data.get('state', False))
def process(self, rds):
with self.executor_factory(max_workers=2) as w:
futures = {w.submit(self.set_accessibility, r): r for r in rds}
for f in as_completed(futures):
if f.exception():
self.log.error(
"Exception setting public access on %s \n %s",
futures[f]['DBInstanceIdentifier'], f.exception())
return rds
Integrazione con Security Hub
Cloud Custodian può essere integrato con AWS Security Hub