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 à l'aide RDS de Cloud Custodian
Créé par Abhay Kumar (AWS) et Dwarika Patra () AWS
Environnement : Production | Technologies : bases de données ; sécurité, identité, conformité | Charge de travail : toutes les autres charges de travail ; open source |
AWSservices : Amazon RDS |
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 (RDSAmazon) 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 RDS base de données Amazon 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 (GDPR), à la loi sur la portabilité et la responsabilité de l'assurance maladie (HIPAA), au National Institute of Standards and Technology (NIST) et aux normes de sécurité des données du secteur des cartes de paiement (PCIDSS).
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 Microsoft Azure AWS et ainsi réduire les efforts liés à l'utilisation de mécanismes tels que AWS Config, les groupes AWS de sécurité et les politiques Azure.
Ce modèle fournit des instructions pour utiliser Cloud Custodian AWS afin de restreindre l'accessibilité publique aux RDS instances Amazon.
Conditions préalables et limitations
Prérequis
Un AWS compte actif
AWSLambda installé
Architecture
Pile technologique cible
Amazon RDS
AWS CloudTrail
AWSLambda
Cloud Custodian
Architecture cible
Le schéma suivant montre Cloud Custodian déployant la politique sur Lambda AWS CloudTrail , déclenchant CreateDBInstance
l'événement, et le paramétrage de la fonction Lambda sur false PubliclyAccessible
sur Amazon. RDS
Outils
AWSservices
AWS CloudTrailvous aide à auditer la gouvernance, la conformité et le risque opérationnel de votre AWS compte.
AWSL'interface de ligne de commande (AWSCLI) est un outil open source qui vous permet d'interagir avec les AWS services par le biais de commandes dans votre interface de ligne de commande.
AWSIdentity and Access Management (IAM) vous aide à gérer en toute sécurité l'accès à vos AWS ressources en contrôlant qui est authentifié et autorisé à les utiliser.
AWSLambda est un service de calcul qui vous permet d'exécuter du code sans avoir à approvisionner 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 (RDSAmazon) vous aide à configurer, exploiter et dimensionner une base de données relationnelle dans AWS le cloud.
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 sans état 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 AWSCLI. | Pour l'installer AWSCLI, suivez les instructions de la AWSdocumentation. | AWSadministrateur |
Configurez les AWS informations d'identification. | Configurez les paramètres avec AWS CLI lesquels les utilisateurs doivent interagirAWS, notamment la AWS région et le format de sortie que vous souhaitez utiliser.
Pour plus d'informations, consultez la AWSdocumentation. | AWSadministrateur |
Créez un IAM rôle. | Pour créer un IAM rôle 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 RDS ressources Amazon sur lesquelles vous pouvez appliquer 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 YAML extension. | 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'AWS 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 de politique YAML 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é à AWSSecurity Hub