View a markdown version of this page

AWSSupport-ContainIAMPrincipal - 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-ContainIAMPrincipal

Description

En cas d'incident de sécurité ou de suspicion de compromission d'un utilisateur Gestion des identités et des accès AWS (IAM) User/Role ou d' AWS Identity Center (IDC), il est crucial d'isoler rapidement l'identité concernée tout en préservant sa configuration à des fins d'investigation. Le AWSSupport-ContainIAMPrincipal runbook propose une approche structurée et réversible pour contenir les identités IAM ou IDC compromises, en bloquant efficacement leur accès aux AWS ressources et en empêchant la propagation potentielle de la compromission.

Ce processus automatisé permet une investigation sans modification permanente de la configuration de l'identité, ce qui permet de rétablir l'accès normal lorsque cela est jugé approprié. Le processus de confinement permet de conserver l'utilisateur ou le rôle au sein d'IAM ou l'utilisateur au sein d'IDC, tout en l'isolant efficacement de toutes les activités du réseau. Cette isolation empêche la ressource d'identité contenue de communiquer avec les ressources de votre Amazon Virtual Private Cloud ou d'accéder à des ressources Internet. Le confinement est conçu pour être réversible, ce qui permet de rétablir un accès normal lorsque cela est jugé approprié.

Fonctionnement

Le AWSSupport-ContainIAMPrincipal runbook met en œuvre un processus de confinement complet pour les utilisateurs, les rôles et les utilisateurs d'Identity Center IAM. Lorsqu'il est exécuté en Contain mode, il valide d'abord tous les paramètres d'entrée et effectue des contrôles de sécurité sur le compartiment Amazon S3 spécifié. Il rassemble ensuite des informations détaillées sur le principal IAM cible et applique les mesures de confinement appropriées en fonction du type de principal. Pour les utilisateurs IAM, il désactive les clés d'accès, supprime l'accès à la console et associe une politique de refus. Pour les rôles IAM, il associe une politique de refus qui révoque les autorisations pour les sessions créées avant le confinement. Pour les utilisateurs d'Identity Center, il supprime les ensembles d'autorisations, les appartenances à des groupes et applique une politique de refus. Tout au long du processus, le runbook sauvegarde la configuration d'origine dans un compartiment Amazon S3 en vue d'une restauration éventuelle. Lorsqu'il est exécuté en Restore mode, il tente de ramener le principal à son état d'avant le confinement à l'aide de la configuration sauvegardée. Le runbook inclut une DryRun option permettant de prévisualiser les modifications sans les appliquer, et fournit des rapports complets sur les opérations réussies et les scénarios d'échec.

Important
  • Utilisation de privilèges élevés : ce document SSM effectue diverses opérations nécessitant des privilèges élevés, telles que la modification des politiques d'identité IAM et IDC et l'application de configurations de quarantaine. Ces actions peuvent potentiellement entraîner une augmentation des privilèges ou avoir un impact sur d'autres charges de travail qui dépendent des identités ciblées. 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 :

  • Risques d'indisponibilité de la charge de travail : ce document de Systems Manager effectue des actions d'isolation susceptibles d'entraîner une indisponibilité ou une interruption de vos charges de travail. Lorsqu'elle est exécutée lors d'un événement de sécurité, elle restreint l'accès à la ressource affectée en révoquant les autorisations d' AWS API des identités IAM et IDC spécifiées, les empêchant ainsi d'effectuer des appels ou des actions d' AWS API. Cela pourrait avoir un impact sur les applications ou les services qui dépendent de ces identités.

  • Création de ressources supplémentaires : le document d'automatisation peut créer de manière conditionnelle des ressources supplémentaires, telles qu'un compartiment Amazon Simple Storage Service (Amazon S3) et des objets Amazon S3 qui y sont stockés, en fonction des paramètres d'exécution. Ces ressources entraîneront des frais supplémentaires en fonction de votre AWS utilisation.

  • Risques de restauration : si le paramètre Action est défini surRestore, ce document SSM tente de restaurer la configuration d'identité IAM ou IDC à son état d'origine. Cependant, le processus de restauration risque d'échouer, laissant l'identité IAM ou IDC dans un état incohérent. Le document 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 au cours du 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.

Exécutez cette automatisation (console)

Type de document

 Automatisation

Propriétaire

Amazon

Plateformes

/

Autorisations IAM requises

Le AutomationAssumeRole paramètre nécessite les autorisations suivantes pour utiliser correctement le runbook :

  • s3 : GetBucketLocation

  • s3 : GetBucket

  • s3 : ListBucket

  • s3 : GetBucketPublicAccessBlocks

  • s3 : GetAccountPublicAccessBlocks

  • s3 : GetBucketPolicyStatus

  • s3 : GetBucketAcl

  • s3 : GetObject

  • s3 : CreateBucket

  • s3 : PutObject

  • iam : GetUser

  • iam : GetUserPolicy

  • iam : GetRole

  • iam : ListUserPolicies

  • iam : ListAttachedUserPolicies

  • iam : ListAccessKeys

  • iam : ListMfaDevices

  • iam : ListVirtualMFADevices

  • iam : GetLoginProfile

  • iam : GetPolicy

  • iam : GetRolePolicy

  • iam : ListPolicies

  • iam : ListAttachedRolePolicies

  • iam : ListRolePolicies

  • iam : UpdateAccessKey

  • iam : CreateAccessKey

  • iam : DeleteLoginProfile

  • iam : DeleteAccessKey

  • iam : PutUserPolicy

  • iam : DeleteUserPolicy

  • iam:DeactivateMFADevice

  • iam : AttachRolePolicy

  • iam : AttachUserPolicy

  • iam : DeleteRolePolicy

  • Appareil IAM : Tag MFA

  • iam : PutRolePolicy

  • iam : TagPolicy

  • iam : TagRole

  • iam : TagUser

  • iam : UntagUser

  • iam : UntagRole

  • organisations : ListAccounts

  • alors : ListPermissionSetsProvisionedToAccount

  • alors : GetInlinePolicyForPermissionSet

  • alors : ListInstances

  • répertoire SSO : SearchUsers

  • alors : ListPermissionSets

  • alors : ListAccountAssignments

  • répertoire SSO : DescribeUser

  • boutique d'identité : ListUsers

  • boutique d'identité : ListGroups

  • boutique d'identité : IsMemberInGroups

  • boutique d'identité : ListGroupMemberships

  • responsable des secrets : CreateSecret

  • responsable des secrets : DeleteSecret

  • alors : DeleteAccountAssignment

  • alors : PutInlinePolicyToPermissionSet

  • alors : CreateAccountAssignment

  • alors : DeleteInlinePolicyFromPermissionSet

  • alors : TagResource

  • alors : UntagResource

  • boutique d'identité : DeleteGroupMembership

  • boutique d'identité : CreateGroupMembership

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:GetBucketLocation", "s3:ListBucket", "s3:GetBucketPublicAccessBlock", "s3:GetBucketPolicyStatus", "s3:GetBucketAcl", "s3:GetObject", "s3:CreateBucket", "s3:PutObject" ], "Resource": "*" }, { "Sid": "IAMPermissions", "Effect": "Allow", "Action": [ "iam:GetUser", "iam:GetUserPolicy", "iam:GetRole", "iam:ListUserPolicies", "iam:ListAttachedUserPolicies", "iam:ListAccessKeys", "iam:ListMfaDevices", "iam:ListVirtualMFADevices", "iam:GetLoginProfile", "iam:GetPolicy", "iam:GetRolePolicy", "iam:ListPolicies", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:UpdateAccessKey", "iam:CreateAccessKey", "iam:DeleteLoginProfile", "iam:DeleteAccessKey", "iam:PutUserPolicy", "iam:DeleteUserPolicy", "iam:DeactivateMFADevice", "iam:AttachRolePolicy", "iam:AttachUserPolicy", "iam:DeleteRolePolicy", "iam:TagMFADevice", "iam:PutRolePolicy", "iam:TagPolicy", "iam:TagRole", "iam:TagUser", "iam:UntagUser", "iam:UntagRole" ], "Resource": "*" }, { "Sid": "OrganizationsPermissions", "Effect": "Allow", "Action": [ "organizations:ListAccounts" ], "Resource": "*" }, { "Sid": "SSOPermissions", "Effect": "Allow", "Action": [ "sso:ListPermissionSetsProvisionedToAccount", "sso:GetInlinePolicyForPermissionSet", "sso:ListInstances", "sso-directory:SearchUsers", "sso:ListPermissionSets", "sso:ListAccountAssignments", "sso-directory:DescribeUser", "sso:DeleteAccountAssignment", "sso:PutInlinePolicyToPermissionSet", "sso:CreateAccountAssignment", "sso:DeleteInlinePolicyFromPermissionSet", "sso:TagResource", "sso:UntagResource" ], "Resource": "*" }, { "Sid": "IdentityStorePermissions", "Effect": "Allow", "Action": [ "identitystore:ListUsers", "identitystore:ListGroups", "identitystore:IsMemberInGroups", "identitystore:ListGroupMemberships", "identitystore:DeleteGroupMembership", "identitystore:CreateGroupMembership" ], "Resource": "*" }, { "Sid": "SecretsManagerPermissions", "Effect": "Allow", "Action": [ "secretsmanager:CreateSecret", "secretsmanager:DeleteSecret" ], "Resource": "*" } ] }

Instructions

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

  1. Accédez AWSSupport-ContainIAMPrincipal à la console AWS Systems Manager.

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

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

    • AutomationAssumeRole (Facultatif) :

      • Description : (Facultatif) Le nom de ressource Amazon (ARN) du rôle de gestion des AWS identités et des accès (IAM) qui permet à Systems Manager Automation d'effectuer les actions en votre nom. Si aucun rôle n'est spécifié, Systems Manager Automation utilise les autorisations de l'utilisateur qui démarre ce runbook.

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

    • PrincipalType (Obligatoire) :

      • Description : (Obligatoire) Type de principal AWS IAM : utilisateur IAM, rôle IAM ou utilisateur du centre d'identité.

      • Type : Chaîne

      • Valeurs autorisées : IAM user|IAM role|Identity Center user

    • PrincipalName (Obligatoire) :

      • Description : (Obligatoire) Le nom du responsable IAM. Pour les utilisateurs d'Identity Center, indiquez le nom d'utilisateur.

      • Type : Chaîne

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

    • Action (obligatoire) :

      • Description : (Obligatoire) Sélectionnez cette option Contain pour isoler le principal IAM cible ou Restore pour essayer de restaurer la configuration d'origine du principal IAM à partir d'une sauvegarde précédente.

      • Type : Chaîne

      • Valeurs autorisées : Contain|Restore

    • DryRun (Facultatif) :

      • Description : (Facultatif) Lorsque cette option est définie surtrue, l'automatisation n'apportera aucune modification au principal IAM cible, mais indiquera ce qu'elle aurait tenté de modifier, en détaillant chaque étape. Valeur par défaut : true.

      • Type : Boolean

      • Valeurs autorisées : true|false

    • ActivateDisabledKeys(Conditionnel) :

      • Description : (Conditionnel) Si le paramètre d'entrée Action est défini sur Restore et que l' PrincipalType est sur Utilisateur IAM, cette option détermine si cette automatisation doit essayer d'activer les clés d'accès associées si elles sont désactivées. Veuillez noter que l'intégrité d'une clé d'accès compromise ne peut pas être vérifiée. AWS déconseille vivement de réactiver une clé compromise. Il est plutôt conseillé de générer de nouvelles clés. Valeur par défaut : false.

      • Type : Boolean

      • Valeurs autorisées : true|false

    • BackupS3BucketName (Conditionnel) :

      • Description : (Conditionnel) Le compartiment Amazon S3 pour sauvegarder la configuration principale IAM lorsque l'Action est définie sur Contain ou pour restaurer la configuration à partir de laquelle l'Action l'estRestore. Notez que si l'action spécifiée est Contain et que le runbook n'est pas en mesure d'accéder au compartiment ou qu'aucune valeur n'est fournie, un nouveau compartiment portant le nom awssupport-containiamprincipal-<random-string> est créé dans votre compte. Si cette valeur DryRun est définie, true ce paramètre est obligatoire.

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

    • BackupS3KeyName (Conditionnel) :

      • Description : (Conditionnel) Si Action est définie surRestore, cela indique la clé Amazon Amazon S3 que l'automatisation utilisera pour tenter de restaurer la configuration principale IAM. La clé Amazon Amazon S3 suit généralement le format suivant :{year}/{month}/{day}/{hour}/{minute}/{automation_execution_id}.json. La clé peut être obtenue à partir de la sortie d'une exécution d'automatisation de confinement précédente.

      • 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 lorsque Action est défini surContain. L'utilisateur ou AutomationAssumeRole, à défaut, l'utilisateur dans le contexte duquel l'automatisation est exécutée est automatiquement ajouté à la liste.

      • 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) Marquez le principal IAM avec une balise de votre choix en utilisant le format suivant :Key=<EXAMPLE_KEY>,Value=<EXAMPLE_VALUE>. Cette option vous permet de suivre les principaux IAM qui ont été ciblés par ce runbook. Remarque : les clés et les valeurs des balises distinguent les majuscules et minuscules.

      • 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}$

  4. Sélectionnez Exécuter.

  5. L'automatisation démarre.

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

    • ValidateRequiredInputs

      Valide les paramètres d'entrée d'automatisation requis en fonction des paramètres Action spécifiés.

    • CheckBackupS3BucketName

      Vérifie si le compartiment Amazon S3 cible accorde potentiellement read un accès write public à ses objets. En cas de flux de travail de confinement, un nouveau compartiment Amazon Amazon S3 est créé s'il n'existe pas. BackupS3BucketName

    • BranchOnAction

      Branche l'automatisation en fonction de la valeur spécifiéeAction.

    • BranchOnPrincipalTypeAndDryRun

      Branche l'automatisation en fonction du type de principal IAM (utilisateur IAM, rôle IAM ou utilisateur Identity Center) et de son exécution en mode. DryRun

    • BranchOnPrincipalTypeForContain

      Branche l'automatisation en fonction de l'Containaction et du type principal IAM (utilisateur IAM, rôle IAM ou utilisateur du centre d'identité) spécifié dans l'entrée.

    • Utilisateur de Getia

      Obtient l'heure de création et le nom d'utilisateur de l'utilisateur IAM cible.

    • GetIAMUserDetails

      Obtient et stocke la configuration de l'utilisateur IAM cible, y compris les politiques en ligne, les politiques gérées, les clés d'accès, les périphériques MFA et le profil de connexion.

    • UpdateS3KeyForUser

      Met à jour la variable d'automatisation « S3Key » à partir de la sortie de l'étape. GetIAMUserDetails

    • Obtenir un rôle

      Obtient l'heure de création, le nom du rôle et le chemin du rôle IAM cible.

    • GetIAMRoleDetails

      Obtient et stocke la configuration du rôle IAM cible, y compris les politiques en ligne et les politiques gérées associées au rôle.

    • UpdateS3KeyForRole

      Met à jour la variable d'automatisation « S3Key » à partir de la sortie de l'étape. GetIAMRoleDetails

    • GetIdentityStoreId

      Obtient l'ID de l'instance AWS IAM Identity Center associée au AWS compte.

    • Utilisateur GetIDC

      Obtient l'ID utilisateur de l'utilisateur cible de l'Identity Center à l'aide de l'Identity Store ID.

    • GatherIDCUserDetails

      Obtient et stocke la configuration de l'utilisateur cible d'Identity Center, y compris les attributions de comptes, les ensembles d'autorisations associés et les politiques en ligne.

    • UpdateS3KeyForIDCUser

      Met à jour la variable d'automatisation « S3Key » à partir de la sortie de l'étape. GatherIDCUserDetails

    • BranchOnIdentityContain

      Branche l'automatisation en fonction de la valeur DryRun et du type principal IAM de l'Containaction.

    • BranchOnDisableAccessKeys

      Branche l'automatisation selon que l'utilisateur IAM possède ou non des clés d'accès qui doivent être désactivées.

    • DisableAccessKeys

      Désactive les clés d'accès utilisateur IAM actives.

    • BranchOnDisableConsoleAccess

      Branches selon que l'accès à la console de AWS gestion est activé ou non pour l'utilisateur IAM.

    • DisableConsoleAccess

      Supprime l'accès par mot de passe de l'utilisateur IAM à la console de gestion. AWS

    • AttachInlineDenyPolicyToUser

      Attache une politique de refus à l'utilisateur IAM afin de révoquer les autorisations pour les anciens jetons de session.

    • AttachInlineDenyPolicyToRole

      Attache une politique de refus au rôle IAM afin de révoquer les autorisations pour les anciens jetons de session.

    • RemovePermissionSets

      Supprime les ensembles d'autorisations associés à l'utilisateur d'Identity Center.

    • RemoveIDCUserFromIDCGroups

      Supprime l'utilisateur Identity Center des groupes Identity Center.

    • AttachInlineDenyPolicyToPermissionSet

      Attache une politique de refus aux ensembles d'autorisations associés à l'utilisateur Identity Center.

    • BranchOnReactivateKeys

      Branche l'automatisation en fonction du ActivateDisabledKeys paramètre pendant le processus de restauration.

    • DetachInlineDenyPolicy

      Supprime la politique de refus associée au rôle IAM pendant le processus de confinement.

    • DetachInlineDenyPolicyFromPermissionSet

      Supprime la politique de refus attachée aux ensembles d'autorisations pendant le processus de confinement.

    • ReportContain

      Génère des informations détaillées sur les actions de confinement qui seraient effectuées lorsque cette DryRun option est réglée surTrue.

    • ReportRestore

      Génère des informations détaillées sur les actions de restauration qui seraient effectuées lorsque cette DryRun valeur est définie surTrue.

    • ReportContainFailure

      Fournit des instructions complètes pour restaurer manuellement la configuration d'origine du principal IAM lors d'un scénario de défaillance du flux de travail de confinement.

    • ReportRestoreFailure

      Fournit des instructions détaillées pour terminer manuellement la restauration de la configuration d'origine du principal IAM lors d'un scénario d'échec du flux de restauration.

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

    • ContainIAMPrincipal.Output

      Fournit des informations détaillées sur les actions de confinement effectuées lorsque Action est défini sur Contain et DryRun est défini sur False. Comprend des informations sur l'emplacement de sauvegarde, les politiques de refus appliquées et les configurations modifiées.

    • RestoreIAMPrincipal.Output

      Fournit des informations détaillées sur les actions de restauration effectuées lorsque Action est défini sur Restaurer et DryRun est défini sur False. Inclut des informations sur les configurations restaurées et les éventuels problèmes rencontrés lors de la restauration.

    • ReportContain.Output

      Produit des informations détaillées sur les actions de confinement qui seraient effectuées lorsque Action est défini sur Contain et DryRun est défini sur True. Comprend une comparaison des configurations actuelles et post-confinement.

    • ReportRestore.Output

      Produit des informations détaillées sur les actions de restauration qui seraient effectuées lorsque Action est défini sur Restore et DryRun est défini sur True. Affiche la configuration actuelle et la configuration d'origine qui serait restaurée.

    • ReportContainFailure.Output

      Fournit des instructions complètes pour restaurer manuellement la configuration d'origine du principal IAM lors d'un scénario de défaillance du flux de travail de confinement.

    • ReportRestoreFailure.Output

      Fournit des instructions détaillées pour terminer manuellement la restauration de la configuration d'origine du principal IAM lors d'un scénario d'échec du flux de restauration.

Sorties

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

  • ContainIAMPrincipal.Output

    Fournit des informations détaillées sur les actions de confinement effectuées lorsque Action est défini sur Contain et DryRun est défini sur False. Comprend des informations sur l'emplacement de sauvegarde, les politiques de refus appliquées et les configurations modifiées.

  • RestoreIAMPrincipal.Output

    Fournit des informations détaillées sur les actions de restauration effectuées lorsque Action est défini sur Restaurer et DryRun est défini sur False. Inclut des informations sur les configurations restaurées et les éventuels problèmes rencontrés lors de la restauration.

  • ReportContain.Output

    Produit des informations détaillées sur les actions de confinement qui seraient effectuées lorsque Action est défini sur Contain et DryRun est défini sur True. Comprend une comparaison des configurations actuelles et post-confinement.

  • ReportRestore.Output

    Produit des informations détaillées sur les actions de restauration qui seraient effectuées lorsque Action est défini sur Restore et DryRun est défini sur True. Affiche la configuration actuelle et la configuration d'origine qui serait restaurée.

  • ReportContainFailure.Output

    Fournit des instructions complètes pour restaurer manuellement la configuration d'origine du principal IAM lors d'un scénario de défaillance du flux de travail de confinement.

  • ReportRestoreFailure.Output

    Fournit des instructions détaillées pour terminer manuellement la restauration de la configuration d'origine du principal IAM lors d'un scénario d'échec du flux de restauration.

Références

Systems Manager Automation