Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Bloquez l'accès public à Amazon RDS à l'aide de Cloud Custodian
Créée par Abhay Kumar (AWS) et Dwarika Patra (AWS)
Récapitulatif
De nombreuses entreprises exécutent leurs charges de travail et leurs services auprès de plusieurs fournisseurs de cloud. Dans ces environnements de cloud hybride, l'infrastructure cloud nécessite une gouvernance cloud stricte, en plus de la sécurité fournie par les différents fournisseurs de cloud. Une base de données cloud telle qu'Amazon Relational Database Service (Amazon RDS) est un service important qui doit être surveillé pour détecter toute vulnérabilité en matière d'accès et d'autorisation. Bien que vous puissiez restreindre l'accès à la base de données Amazon RDS en configurant un groupe de sécurité, vous pouvez ajouter une deuxième couche de protection pour interdire des actions telles que l'accès public. Garantir le blocage de l'accès public vous aidera à vous conformer au règlement général sur la protection des données (RGPD), à la Health Insurance Portability and Accountability Act (HIPAA), au National Institute of Standards and Technology (NIST) et à la norme de sécurité des données de l'industrie des cartes de paiement (PCI DSS).
Cloud Custodian est un moteur de règles open source que vous pouvez utiliser pour appliquer des restrictions d'accès aux ressources Amazon Web Services (AWS) telles qu'Amazon RDS. Avec Cloud Custodian, vous pouvez définir des règles qui valident l'environnement par rapport aux normes de sécurité et de conformité définies. Vous pouvez utiliser Cloud Custodian pour gérer vos environnements cloud en garantissant le respect des politiques de sécurité, des politiques en matière de balises, la collecte des ressources inutilisées et la gestion des coûts. Avec Cloud Custodian, vous pouvez utiliser une interface unique pour mettre en œuvre la gouvernance dans un environnement cloud hybride. Par exemple, vous pouvez utiliser l'interface Cloud Custodian pour interagir avec AWS et Microsoft Azure, réduisant ainsi les efforts liés à l'utilisation de mécanismes tels qu'AWS Config, les groupes de sécurité AWS et les politiques Azure.
Ce modèle fournit des instructions pour utiliser Cloud Custodian sur AWS afin de restreindre l'accessibilité publique aux instances Amazon RDS.
Conditions préalables et limitations
Prérequis
Un compte AWS actif
AWS Lambda installé
Architecture
Pile technologique cible
Amazon RDS
AWS CloudTrail
AWS Lambda
Cloud Custodian
Architecture cible
Le schéma suivant montre Cloud Custodian déployant la politique sur Lambda, CloudTrail AWS initiant CreateDBInstance
l'événement et définissant la fonction Lambda sur false sur Amazon PubliclyAccessible
RDS.

Outils
Services AWS
AWS vous CloudTrail aide à auditer la gouvernance, la conformité et le risque opérationnel de votre compte AWS.
L'interface de ligne de commande AWS (AWS CLI) est un outil open source qui vous permet d'interagir avec les services AWS par le biais de commandes dans votre shell de ligne de commande.
AWS Identity and Access Management (IAM) vous aide à gérer en toute sécurité l'accès à vos ressources AWS en contrôlant qui est authentifié et autorisé à les utiliser.
AWS Lambda est un service de calcul qui vous permet d'exécuter du code sans avoir à provisionner ou à gérer des serveurs. Il exécute votre code uniquement lorsque cela est nécessaire et évolue automatiquement, de sorte que vous ne payez que pour le temps de calcul que vous utilisez.
Amazon Relational Database Service (Amazon RDS) vous aide à configurer, exploiter et dimensionner une base de données relationnelle dans le cloud AWS.
Autres outils
Cloud Custodian
unifie les outils et les scripts utilisés par de nombreuses entreprises pour gérer leurs comptes de cloud public en un seul outil open source. Il utilise un moteur de règles apatrides pour la définition et l'application des politiques, avec des métriques, des résultats structurés et des rapports détaillés pour l'infrastructure cloud. Il s'intègre étroitement à un environnement d'exécution sans serveur pour fournir une correction et une réponse en temps réel avec une faible charge opérationnelle.
Épopées
Tâche | Description | Compétences requises |
---|---|---|
Installez l'interface de ligne de commande AWS. | Pour installer l'AWS CLI, suivez les instructions de la documentation AWS. | Administrateur AWS |
Configurez les informations d'identification AWS. | Configurez les paramètres utilisés par l'AWS CLI pour interagir avec AWS, notamment la région AWS et le format de sortie que vous souhaitez utiliser.
Pour plus d'informations, consultez la documentation AWS. | Administrateur AWS |
Créez un rôle IAM. | Pour créer un rôle IAM avec le rôle d'exécution Lambda, exécutez la commande suivante.
| AWS DevOps |
Tâche | Description | Compétences requises |
---|---|---|
Installez Cloud Custodian. | Pour installer Cloud Custodian pour votre système d'exploitation et votre environnement, suivez les instructions de la documentation Cloud Custodian | DevOps ingénieur |
Vérifiez le schéma Cloud Custodian. | Pour consulter la liste complète des ressources Amazon RDS sur lesquelles vous pouvez exécuter des politiques, utilisez la commande suivante.
| DevOps ingénieur |
Créez la politique Cloud Custodian. | Enregistrez le code qui se trouve sous le fichier de politique Cloud Custodian dans la section Informations supplémentaires à l'aide d'une extension YAML. | DevOps ingénieur |
Définissez les actions du Cloud Custodian pour modifier le drapeau accessible au public. |
| DevOps ingénieur |
Effectuez un essai à sec. | (Facultatif) Pour vérifier quelles ressources sont identifiées par la politique sans exécuter aucune action sur les ressources, utilisez la commande suivante.
| DevOps ingénieur |
Tâche | Description | Compétences requises |
---|---|---|
Déployez la politique à l'aide de Lambda. | Pour créer la fonction Lambda qui exécutera la politique, utilisez la commande suivante.
Cette politique sera ensuite initiée par l' CloudTrail Par conséquent, AWS Lambda définira l'indicateur accessible au public sur false pour les instances qui répondent aux critères. | DevOps ingénieur |
Ressources connexes
Informations supplémentaires
Fichier YAML de politique 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
fichier rds.py de ressources 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
Intégration au Security Hub
Cloud Custodian peut être intégré à AWS Security Hub