View a markdown version of this page

AWSSupport-ContainS3Resource - AWS Systems Manager Référence du dossier d’exploitation Automation

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.

AWSSupport-ContainS3Resource

Description

Le AWSSupport-ContainS3Resource runbook fournit une solution automatisée pour la procédure décrite dans l'article Support Automation Workflow (SAW) Runbook : Contain a compromise AWS Amazon S3 bucket

Important
  • Ce runbook effectue diverses opérations qui nécessitent des privilèges élevés, telles que la modification des politiques de compartiment Amazon S3, des balises et des configurations d'accès public. Ces actions peuvent potentiellement entraîner une augmentation des privilèges ou avoir un impact sur d'autres charges de travail qui dépendent du compartiment Amazon S3 ciblé. Vous devez vérifier les autorisations accordées au rôle spécifié par le AutomationAssumeRole paramètre et vous assurer qu'elles sont adaptées au cas d'utilisation prévu. Vous pouvez consulter la AWS documentation suivante pour plus d'informations sur les autorisations IAM : Identity and Access Management (IAM) Permissions AWS AWS Systems Manager Automation Permissions

  • Ce runbook exécute des actions mutatives susceptibles d'entraîner une indisponibilité ou une interruption de vos charges de travail. Plus précisément, l'Containaction bloque tout accès au compartiment Amazon S3 spécifié, à l'exception des rôles spécifiés dans le SecureRoles paramètre. Cela pourrait avoir un impact sur toutes les applications ou services qui s'appuient sur le compartiment Amazon S3 ciblé.

  • Au cours de l'Containaction, ce runbook peut créer un compartiment Amazon S3 supplémentaire (spécifié par le BackupS3BucketName paramètre) pour stocker la sauvegarde de la configuration du compartiment d'origine, si celle-ci n'existe pas déjà.

  • Si le Action paramètre est défini surRestore, ce runbook tente de restaurer la configuration du compartiment Amazon S3 à son état d'origine en fonction de la sauvegarde stockée dans le BackupS3BucketName compartiment. Cependant, le processus de restauration risque d'échouer, laissant le compartiment Amazon S3 dans un état incohérent. Le runbook fournit des instructions pour la restauration manuelle en cas de telles défaillances, mais vous devez être prêt à gérer les problèmes potentiels pendant le processus de restauration.

Il est recommandé de passer en revue le runbook de manière approfondie, de comprendre ses impacts potentiels et de le tester dans un environnement hors production avant de l'exécuter dans votre environnement de production.

Fonctionnement

Ce runbook fonctionne différemment en fonction du type de ressource et de l'action :

  • Pour le compartiment à usage général Amazon S3 Containment : l'automatisation bloque l'accès public au compartiment, désactive la configuration ACL, impose la propriété de l'objet propriétaire du compartiment et met en place une politique de compartiment restrictive interdisant toutes les actions Amazon S3 sur le compartiment, à l'exception de l'autorisation des rôles IAM répertoriés.

  • Pour l'objet à usage général Amazon S3 Containment : l'automatisation bloque l'accès public au compartiment, désactive la configuration ACL, impose la propriété de l'objet au propriétaire du compartiment et met en place une politique de compartiment restrictive interdisant toutes les actions Amazon S3 sur l'objet, à l'exception de l'autorisation des rôles IAM répertoriés.

  • Pour le compartiment d'annuaire Amazon S3 Containment : l'automatisation impose une politique de compartiment restrictive refusant toutes les actions Amazon S3 dans le compartiment, à l'exception de l'autorisation des rôles IAM répertoriés.

  • Pour le compartiment à usage général Amazon S3 Restore : l'automatisation rétablit la configuration d'accès public par bloc, la configuration ACL du compartiment, la propriété de l'objet propriétaire du compartiment et la politique de compartiment à la configuration initiale avant le confinement.

  • Pour les objets à usage général Amazon S3 Restore : l'automatisation rétablit la configuration d'accès public par bloc, la configuration ACL du compartiment, la configuration de l'ACL de l'objet, la propriété de l'objet par le propriétaire du compartiment et la politique de compartiment à la configuration initiale avant le confinement.

  • Pour Amazon S3 Directory Bucket Restore : l'automatisation rétablit la politique de compartiment dans la configuration initiale avant le confinement.

Exécutez cette automatisation (console)

Types de document

 Automatisation

Propriétaire

Amazon

Plateforme

/

Autorisations IAM nécessaires

Le AutomationAssumeRole paramètre nécessite les actions suivantes pour utiliser correctement le runbook.

  • s3 : CreateBucket

  • s3 : DeleteBucketPolicy

  • s3 : DeleteObjectTagging

  • s3 : GetAccountPublicAccessBlock

  • s3 : GetBucketAcl

  • s3 : GetBucketLocation

  • s3 : GetBucketOwnershipControls

  • s3 : GetBucketPolicy

  • s3 : GetBucketPolicyStatus

  • s3 : GetBucketTagging

  • s3 : GetEncryptionConfiguration

  • s3 : GetObject

  • s3 : GetObjectAcl

  • s3 : GetObjectTagging

  • s3 : GetReplicationConfiguration

  • s3 : ListBucket

  • s3 : PutAccountPublicAccessBlock

  • s3 : PutBucket ACL

  • s3 : PutBucketOwnershipControls

  • s3 : PutBucketPolicy

  • s3 : PutBucketPublicAccessBlock

  • s3 : PutBucketTagging

  • s3 : PutBucketVersioning

  • s3 : PutObject

  • s3 : PutObjectAcl

  • S3 Express : CreateSession

  • S3 Express : DeleteBucketPolicy

  • S3 Express : GetBucketPolicy

  • S3 Express : PutBucketPolicy

  • sms : DescribeAutomationExecutions

Voici un exemple de politique IAM qui accorde les autorisations nécessaires pour : AutomationAssumeRole

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "S3Permissions", "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:DeleteBucketPolicy", "s3:DeleteObjectTagging", "s3:GetAccountPublicAccessBlock", "s3:GetBucketAcl", "s3:GetBucketLocation", "s3:GetBucketOwnershipControls", "s3:GetBucketPolicy", "s3:GetBucketPolicyStatus", "s3:GetBucketTagging", "s3:GetEncryptionConfiguration", "s3:GetObject", "s3:GetObjectAcl", "s3:GetObjectTagging", "s3:GetReplicationConfiguration", "s3:ListBucket", "s3:PutAccountPublicAccessBlock", "s3:PutBucketACL", "s3:PutBucketOwnershipControls", "s3:PutBucketPolicy", "s3:PutBucketPublicAccessBlock", "s3:PutBucketTagging", "s3:PutBucketVersioning", "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "*" }, { "Sid": "S3ExpressPermissions", "Effect": "Allow", "Action": [ "s3express:CreateSession", "s3express:DeleteBucketPolicy", "s3express:GetBucketPolicy", "s3express:PutBucketPolicy" ], "Resource": "*" }, { "Sid": "SSMPermissions", "Effect": "Allow", "Action": [ "ssm:DescribeAutomationExecutions" ], "Resource": "*" } ] }

Instructions

Pour configurer l'automatisation, procédez comme suit :

  1. Accédez à AWSSupport-ContainS3Resource la section Documents dans Systems Manager.

  2. Sélectionnez Execute automation (Exécuter l'automatisation).

  3. Pour les paramètres d'entrée, entrez les informations suivantes :

    • BucketName (Obligatoire) :

      • Description : (Obligatoire) Le nom du compartiment Amazon S3.

      • Type : AWS::S3::Bucket::Name

    • Action (obligatoire) :

      • Description : (Obligatoire) Sélectionnez cette option Contain pour isoler la ressource Amazon S3 ou Restore pour essayer de restaurer la configuration des ressources à son état d'origine à partir d'une sauvegarde précédente.

      • Type : Chaîne

      • Valeurs autorisées : Contain|Restore

    • DryRun (Facultatif) :

      • Description : (Facultatif) Lorsque ce paramètre est défini sur true, l'automatisation n'apporte aucune modification à la ressource Amazon S3 cible, mais affiche ce qu'elle aurait tenté de modifier. Valeur par défaut : true.

      • Type : Boolean

      • Valeurs autorisées : true|false

    • BucketKeyName (Facultatif) :

      • Description : (Facultatif) La clé de l'objet Amazon S3 que vous souhaitez contenir ou restaurer. Utilisé pendant le confinement au niveau de l'objet.

      • Type : Chaîne

      • Schéma autorisé : ^[a-zA-Z0-9\\.\\-_\\\\!*'()/]{0,1024}$

    • BucketRestrictAccess(Conditionnel) :

      • Description : (Conditionnel) L'ARN des utilisateurs ou des rôles IAM qui seront autorisés à accéder à la ressource Amazon S3 cible après avoir exécuté les actions de confinement. Ce paramètre est obligatoire lorsqu'il Action est défini surContain.

      • Type : StringList

      • Schéma autorisé : ^$|^arn:(aws|aws-cn|aws-us-gov|aws-iso(-[a-z])?):iam::[0-9]{12}:(role|user)\\/[\\w+\\/=,.@-]+$

    • TagIdentifier (Facultatif) :

      • Description : (Facultatif) Une balise au format Key=BatchId, Value=78925 qui sera ajoutée aux ressources créées ou modifiées par ce runbook pendant le workflow de confinement.

      • Type : Chaîne

      • Schéma autorisé : ^$|^[Kk][Ee][Yy]=[\\+\\-\\=\\.\\_\\:\\/@a-zA-Z0-9]{1,128},[Vv][Aa][Ll][Uu][Ee]=[\\+\\-\\=\\.\\_\\:\\/@a-zA-Z0-9]{0,128}$

    • BackupS3BucketName (Conditionnel) :

      • Description : (Conditionnel) Le compartiment Amazon S3 permet de sauvegarder la configuration des ressources cibles lorsque le Action paramètre est défini sur Contain ou de restaurer la configuration à partir du moment où il Action est défini surRestore.

      • Type : AWS::S3::Bucket::Name

    • BackupS3KeyName (Conditionnel) :

      • Description : (Conditionnel) Si cette valeur Action est définie surRestore, cela indique la clé Amazon S3 que l'automatisation utilisera pour tenter de restaurer la configuration des ressources cibles.

      • Type : Chaîne

      • Schéma autorisé : ^[a-zA-Z0-9\\.\\-_\\\\!*'()/]{0,1024}$

    • BackupS3BucketAccess(Conditionnel) :

      • Description : (Conditionnel) L'ARN des utilisateurs ou des rôles IAM qui seront autorisés à accéder au compartiment Amazon S3 de sauvegarde après avoir exécuté les actions de confinement. Ce paramètre est obligatoire lorsqu'il Action estContain.

      • Type : StringList

      • Schéma autorisé : ^$|^arn:(aws|aws-cn|aws-us-gov|aws-iso(-[a-z])?):iam::[0-9]{12}:(role|user)\\/[\\w+\\/=,.@-]+$

    • AutomationAssumeRole (Facultatif) :

      • Description : (Facultatif) Le nom de ressource Amazon (ARN) du rôle IAM qui permet à Systems Manager Automation d'effectuer les actions en votre nom.

      • Type : AWS::IAM::Role::Arn

  4. Sélectionnez Exécuter.

  5. L'automatisation démarre.

  6. Le document exécute les étapes suivantes :

    • valider RequiredInputs

      Valide les paramètres d'entrée d'automatisation requis en fonction de l'action spécifiée.

    • affirmer BucketExists

      Vérifie si le compartiment Amazon S3 cible existe et s'il est accessible.

    • sauvegarde BucketPreChecks

      Vérifie si le compartiment Amazon S3 de sauvegarde accorde potentiellement un accès public en lecture ou en écriture à ses objets.

    • sauvegarde TargetBucketMetadata

      Décrit la configuration actuelle du compartiment Amazon S3 cible et télécharge la sauvegarde vers le compartiment Amazon S3 de sauvegarde spécifié.

    • Seau à conteneurs

      Effectue des opérations au niveau du compartiment pour contenir le compartiment Amazon S3 cible.

    • BranchOnActionAndMode

      Branche l'automatisation en fonction des paramètres d'entrée Action et DryRun.

    • RestoreInstanceConfiguration

      Restaure la configuration du compartiment Amazon S3 à partir de la sauvegarde.

    • contenir FinalOutput

      Consolide l'activité de confinement dans un format lisible.

    • ReportContain

      Affiche les détails du fonctionnement à sec pour les actions de confinement.

    • ReportRestore

      Affiche les détails de fonctionnement à sec pour les actions de restauration.

    • ReportRestoreFailure

      Fournit des instructions pour restaurer la configuration d'origine du compartiment Amazon S3 lors d'un scénario d'échec du flux de restauration.

    • ReportContainmentFailure

      Fournit des instructions pour restaurer la configuration d'origine du compartiment Amazon S3 lors d'un scénario d'échec du flux de travail de confinement.

    • FinalOutput

      Affiche les détails des actions de confinement.

  7. Une fois l'exécution terminée, consultez la section Sorties pour obtenir les résultats détaillés de l'exécution :

    • ContainFinalOutput.Output

      Affiche les détails des actions de confinement effectuées par ce runbook lorsqu'il DryRun est défini sur False.

    • RestoreFinalOutput.Output

      Affiche les détails des actions de restauration effectuées par ce runbook lorsqu'il DryRun est défini sur False.

    • ContainS3ResourceDryRun.Output

      Affiche les détails des actions de confinement effectuées par ce runbook lorsqu'il DryRun est défini sur True.

    • RestoreS3ResourceDryRun.Output

      Affiche les détails des actions de restauration effectuées par ce runbook lorsqu'il DryRun est défini sur True.

    • ReportContainmentFailure.Output

      Fournit des instructions pour restaurer la configuration d'origine de la ressource Amazon S3 cible lors d'un scénario d'échec du flux de travail de confinement.

    • ReportRestoreFailure.Output

      Fournit des instructions pour restaurer la configuration d'origine de la ressource Amazon S3 cible lors d'un scénario d'échec du flux de restauration.

Références

Systems Manager Automation