View a markdown version of this page

AWSSupport-ContainIAMPrincipal - AWS Systems Manager Riferimento al runbook dell’automazione

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à.

AWSSupport-ContainIAMPrincipal

Descrizione

In caso di incidente di sicurezza o sospetta compromissione di un utente AWS Identity and Access Management (IAM) User/Role o AWS Identity Center (IDC), è fondamentale isolare rapidamente l'identità interessata preservandone la configurazione per le indagini. Il AWSSupport-ContainIAMPrincipal runbook fornisce un approccio strutturato e reversibile per contenere le identità IAM o IDC compromesse, bloccando efficacemente il loro accesso alle AWS risorse e prevenendo la potenziale diffusione della compromissione.

Questo processo automatizzato consente l'indagine senza alterazioni permanenti della configurazione dell'identità, consentendo il ripristino del normale accesso quando ritenuto opportuno. Il processo di contenimento mantiene l'utente o il ruolo all'interno di IAM o l'utente all'interno di IDC, isolandolo efficacemente da tutte le attività di rete. Questo isolamento impedisce alla risorsa di identità contenuta di comunicare con le risorse all'interno di Amazon Virtual Private Cloud o di accedere alle risorse Internet. Il contenimento è progettato per essere reversibile, consentendo il ripristino del normale accesso quando ritenuto opportuno.

Come funziona?

Il AWSSupport-ContainIAMPrincipal runbook implementa un processo di contenimento completo per gli utenti, i ruoli e gli utenti dell'Identity Center IAM. Se eseguito in Contain modalità, convalida innanzitutto tutti i parametri di input ed esegue controlli di sicurezza sul bucket Amazon S3 specificato. Raccoglie quindi informazioni dettagliate sul principale IAM di destinazione e applica misure di contenimento appropriate in base al tipo di principale. Per gli utenti IAM, disabilita le chiavi di accesso, rimuove l'accesso alla console e allega una policy di negazione. Per i ruoli IAM, allega una policy di negazione che revoca le autorizzazioni per le sessioni create prima del contenimento. Per gli utenti di Identity Center, rimuove i set di autorizzazioni, le appartenenze ai gruppi e applica una politica di negazione. Durante tutto il processo, il runbook esegue il backup della configurazione originale su un bucket Amazon S3 per un eventuale ripristino. Quando viene eseguito in Restore modalità, tenta di riportare il principale allo stato precedente al contenimento utilizzando la configurazione di backup. Il runbook include un'DryRunopzione per visualizzare in anteprima le modifiche senza applicarle e fornisce report completi sia sulle operazioni riuscite che sugli scenari di errore.

Importante
  • Uso di privilegi elevati: questo documento SSM esegue varie operazioni che richiedono privilegi elevati, come la modifica delle politiche di identità IAM e IDC e l'applicazione delle configurazioni di quarantena. Queste azioni potrebbero potenzialmente portare a un'escalation dei privilegi o influire su altri carichi di lavoro che dipendono dalle identità prese di mira. È necessario esaminare le autorizzazioni concesse al ruolo specificato dal AutomationAssumeRole parametro e assicurarsi che siano appropriate per il caso d'uso previsto. Puoi fare riferimento alla seguente AWS documentazione per ulteriori informazioni sulle autorizzazioni IAM:

  • Rischi di indisponibilità del carico di lavoro: questo documento di Systems Manager esegue azioni di isolamento che potrebbero potenzialmente causare indisponibilità o interruzione dei carichi di lavoro. Se eseguito durante un evento di sicurezza, limiterà l'accesso alla risorsa interessata revocando le autorizzazioni AWS API dalle identità IAM e IDC specificate, impedendo loro di effettuare chiamate o azioni API. AWS Ciò potrebbe influire su qualsiasi applicazione o servizio che dipende da queste identità.

  • Creazione di risorse aggiuntive: il documento di automazione può creare in modo condizionale risorse aggiuntive, come un bucket Amazon Simple Storage Service (Amazon S3) e oggetti Amazon S3 in essi archiviati, a seconda dei parametri di esecuzione. Queste risorse comporteranno costi aggiuntivi in base all'utilizzo. AWS

  • Rischi di ripristino: se il parametro Action è impostato suRestore, questo documento SSM tenta di ripristinare la configurazione dell'identità IAM o IDC allo stato originale. Tuttavia, esiste il rischio che il processo di ripristino non riesca, lasciando l'identità IAM o IDC in uno stato incoerente. Il documento fornisce istruzioni per il ripristino manuale in caso di tali errori, ma è necessario essere pronti a gestire eventuali problemi durante il processo di ripristino.

Si consiglia di esaminare attentamente il runbook, comprenderne i potenziali impatti e testarlo in un ambiente non di produzione prima di eseguirlo nell'ambiente di produzione.

Esegui questa automazione (console)

Tipo di documento

Automazione

Proprietario

Amazon

Piattaforme

/

Autorizzazioni IAM richieste

Il AutomationAssumeRole parametro richiede le seguenti autorizzazioni per utilizzare correttamente il runbook:

  • s3: GetBucketLocation

  • s3: GetBucket

  • s3: ListBucket

  • s3: GetBucketPublicAccessBlocks

  • s3: GetAccountPublicAccessBlocks

  • s3: GetBucketPolicyStatus

  • s3: GetBucketAcl

  • s3: GetObject

  • s3: CreateBucket

  • s3: PutObject

  • sono: GetUser

  • sono: GetUserPolicy

  • sono: GetRole

  • sono: ListUserPolicies

  • sono: ListAttachedUserPolicies

  • sono: ListAccessKeys

  • sono: ListMfaDevices

  • sono: ListVirtualMFADevices

  • sono: GetLoginProfile

  • sono: GetPolicy

  • sono: GetRolePolicy

  • sono: ListPolicies

  • sono: ListAttachedRolePolicies

  • sono: ListRolePolicies

  • sono: UpdateAccessKey

  • sono: CreateAccessKey

  • sono: DeleteLoginProfile

  • sono: DeleteAccessKey

  • sono: PutUserPolicy

  • sono: DeleteUserPolicy

  • iam:DeactivateMFADevice

  • sono: AttachRolePolicy

  • sono: AttachUserPolicy

  • sono: DeleteRolePolicy

  • Iam: tagMFA Device

  • sono: PutRolePolicy

  • sono: TagPolicy

  • sono: TagRole

  • sono: TagUser

  • sono: UntagUser

  • sono: UntagRole

  • organizzazioni: ListAccounts

  • così: ListPermissionSetsProvisionedToAccount

  • sso: GetInlinePolicyForPermissionSet

  • sso: ListInstances

  • cartella sso: SearchUsers

  • sso: ListPermissionSets

  • sso: ListAccountAssignments

  • cartella sso: DescribeUser

  • archivio di identità: ListUsers

  • archivio di identità: ListGroups

  • archivio di identità: IsMemberInGroups

  • archivio di identità: ListGroupMemberships

  • gestore dei segreti: CreateSecret

  • responsabile dei segreti: DeleteSecret

  • così: DeleteAccountAssignment

  • sso: PutInlinePolicyToPermissionSet

  • sso: CreateAccountAssignment

  • sso: DeleteInlinePolicyFromPermissionSet

  • sso: TagResource

  • sso: UntagResource

  • archivio di identità: DeleteGroupMembership

  • archivio di identità: CreateGroupMembership

Ecco un esempio di policy IAM che concede le autorizzazioni necessarie per: 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": "*" } ] }

Istruzioni

Segui questi passaggi per configurare l'automazione:

  1. Accedere alla console AWSSupport-ContainIAMPrincipal di AWS Systems Manager.

  2. Seleziona Execute automation (Esegui automazione).

  3. Per i parametri di input, immettete quanto segue:

    • AutomationAssumeRole (Facoltativo):

      • Descrizione: (Facoltativo) L'Amazon Resource Name (ARN) del ruolo IAM ( AWS Identity and Access Management) che consente a Systems Manager Automation di eseguire le azioni per tuo conto. Se non viene specificato alcun ruolo, Systems Manager Automation utilizza le autorizzazioni dell'utente che avvia questo runbook.

      • Tipo: AWS::IAM::Role::Arn

    • PrincipalType (Obbligatorio):

      • Descrizione: (Obbligatorio) Tipo principale AWS IAM: utente IAM, ruolo IAM o utente dell'Identity Center.

      • Tipo: stringa

      • Valori consentiti: IAM user|IAM role|Identity Center user

    • PrincipalName (Obbligatorio):

      • Descrizione: (Obbligatorio) Il nome del responsabile IAM. Per gli utenti di Identity Center, fornisci il nome utente.

      • Tipo: stringa

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

    • Azione (obbligatoria):

      • Descrizione: (Obbligatorio) Seleziona Contain per isolare il principale IAM di destinazione o per provare Restore a ripristinare il principale IAM alla sua configurazione originale da un backup precedente.

      • Tipo: stringa

      • Valori consentiti: Contain|Restore

    • DryRun (Facoltativo):

      • Descrizione: (Facoltativo) Se impostata sutrue, l'automazione non apporterà alcuna modifica al principale IAM di destinazione, ma restituirà ciò che avrebbe tentato di modificare, specificando in dettaglio ogni passaggio. Valore predefinito: true.

      • Tipo: Booleano

      • Valori consentiti: true|false

    • ActivateDisabledKeys(Condizionale):

      • Descrizione: (Condizionale) Se il parametro di input Action è impostato su Restore e PrincipalType è impostato su utente IAM, questa opzione determina se questa automazione deve provare ad attivare le chiavi di accesso associate se disattivate. Tieni presente che l'integrità di una chiave di accesso compromessa non può essere verificata. AWS sconsiglia vivamente di riattivare una chiave compromessa. È invece consigliabile generare nuove chiavi. Valore predefinito: false.

      • Tipo: Booleano

      • Valori consentiti: true|false

    • BackupS3BucketName (Condizionale):

      • Descrizione: (condizionale) Il bucket Amazon S3 per il backup della configurazione principale IAM quando l'Action è impostata Contain o per ripristinare la configurazione da quando l'Action è impostata. Restore Nota che se l'Action specificata è Contain e il runbook non è in grado di accedere al bucket o non viene fornito un valore, nel tuo account viene creato un nuovo bucket con il nome. awssupport-containiamprincipal-<random-string> Se DryRun è impostato su true questo parametro è obbligatorio.

      • Tipo: AWS::S3::Bucket::Name

    • BackupS3KeyName (Condizionale):

      • Descrizione: (Condizionale) Se Action è impostato suRestore, specifica la chiave Amazon Amazon S3 che l'automazione utilizzerà per provare a ripristinare la configurazione principale IAM. La chiave Amazon Amazon S3 segue in genere questo formato:. {year}/{month}/{day}/{hour}/{minute}/{automation_execution_id}.json La chiave può essere ottenuta dall'output di una precedente esecuzione di automazione del contenimento.

      • Tipo: stringa

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

    • BackupS3BucketAccess(Condizionale):

      • Descrizione: (condizionale) L'ARN degli utenti o dei ruoli IAM a cui sarà consentito l'accesso al bucket Amazon S3 di backup dopo aver eseguito le azioni di contenimento. Questo parametro è obbligatorio quando Action è. Contain L'utente o AutomationAssumeRole, in sua assenza, l'utente nel cui contesto è in esecuzione l'automazione viene aggiunto automaticamente all'elenco.

      • Tipo: StringList

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

    • TagIdentifier (Facoltativo):

      • Descrizione: (Facoltativo) Contrassegna il principale IAM con un tag a tua scelta utilizzando il seguente formato:Key=<EXAMPLE_KEY>,Value=<EXAMPLE_VALUE>. Questa opzione ti consente di tenere traccia dei principali IAM che sono stati presi di mira da questo runbook. Nota: le chiavi e i valori dei tag fanno distinzione tra maiuscole e minuscole.

      • Tipo: stringa

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

  4. Seleziona Esegui.

  5. L'automazione viene avviata.

  6. Il documento esegue i seguenti passaggi:

    • ValidateRequiredInputs

      Convalida i parametri di input di automazione richiesti in base a quelli Action specificati.

    • CheckBackupS3BucketName

      Verifica se il bucket Amazon S3 di destinazione concede read potenzialmente l'accesso write pubblico ai suoi oggetti. In caso di flusso di lavoro di contenimento, viene creato un nuovo bucket Amazon Amazon S3 se il bucket non esiste. BackupS3BucketName

    • BranchOnAction

      Suddivide l'automazione in base al valore specificato. Action

    • BranchOnPrincipalTypeAndDryRun

      Suddivide l'automazione in base al tipo di responsabile IAM (utente IAM, ruolo IAM o utente dell'Identity Center) e se è in esecuzione in DryRun modalità.

    • BranchOnPrincipalTypeForContain

      Suddivide l'automazione in base Contain all'azione e al tipo di principale IAM (utente IAM, ruolo IAM o utente dell'Identity Center) specificati nell'input.

    • GetIAMUser

      Ottiene l'ora di creazione e il nome utente dell'utente IAM di destinazione.

    • GetIAMUserDetails

      Ottiene e memorizza la configurazione dell'utente IAM di destinazione, comprese le policy in linea, le policy gestite, le chiavi di accesso, i dispositivi MFA e il profilo di accesso.

    • UpdateS3KeyForUser

      Aggiorna la variabile di automazione 'S3Key' dall'output del passaggio. GetIAMUserDetails

    • Ottieni IAMRole

      Ottiene l'ora di creazione, il nome del ruolo e il percorso del ruolo IAM di destinazione.

    • GetIAMRoleDetails

      Ottiene e memorizza la configurazione del ruolo IAM di destinazione, incluse le policy in linea e le policy gestite associate al ruolo.

    • UpdateS3KeyForRole

      Aggiorna la variabile di automazione 'S3Key' dall'output del passaggio. GetIAMRoleDetails

    • GetIdentityStoreId

      Ottiene l'ID dell'istanza AWS IAM Identity Center associata all' AWS account.

    • GetIDCUser

      Ottiene l'ID utente dell'utente di Identity Center di destinazione utilizzando l'Identity Store ID.

    • GatherIDCUserDetails

      Ottiene e memorizza la configurazione dell'utente di Identity Center di destinazione, comprese le assegnazioni degli account, i set di autorizzazioni associati e le politiche in linea.

    • UpdateS3KeyForIDCUser

      Aggiorna la variabile di automazione 'S3Key' dall'output del passaggio. GatherIDCUserDetails

    • BranchOnIdentityContain

      Suddivide l'automazione in base al valore DryRun e al tipo principale IAM dell'Containazione.

    • BranchOnDisableAccessKeys

      Suddivide l'automazione in base al fatto che l'utente IAM disponga di chiavi di accesso che devono essere disabilitate.

    • DisableAccessKeys

      Disattiva le chiavi di accesso degli utenti IAM attivi.

    • BranchOnDisableConsoleAccess

      Si ramifica in base al fatto che l'utente IAM abbia abilitato o meno l'accesso alla console di AWS gestione.

    • DisableConsoleAccess

      Rimuove l'accesso basato su password dell'utente IAM alla console di gestione. AWS

    • AttachInlineDenyPolicyToUser

      Allega una policy di negazione all'utente IAM per revocare le autorizzazioni per i token di sessione precedenti.

    • AttachInlineDenyPolicyToRole

      Allega una policy di negazione al ruolo IAM per revocare le autorizzazioni per i token di sessione precedenti.

    • RemovePermissionSets

      Rimuove i set di autorizzazioni associati all'utente di Identity Center.

    • RemoveIDCUserFromIDCGroups

      Rimuove l'utente dell'Identity Center dai gruppi di Identity Center.

    • AttachInlineDenyPolicyToPermissionSet

      Allega una politica di negazione ai set di autorizzazioni associati all'utente di Identity Center.

    • BranchOnReactivateKeys

      Suddivide l'automazione in base al ActivateDisabledKeys parametro durante il processo di ripristino.

    • DetachInlineDenyPolicy

      Rimuove la politica di negazione associata al ruolo IAM durante il processo di contenimento.

    • DetachInlineDenyPolicyFromPermissionSet

      Rimuove la politica di negazione associata ai set di autorizzazioni durante il processo di contenimento.

    • ReportContain

      Fornisce informazioni dettagliate sulle azioni di contenimento che verrebbero eseguite quando DryRun è impostato su. True

    • ReportRestore

      Fornisce informazioni dettagliate sulle azioni di ripristino che verrebbero eseguite quando DryRun è impostato su. True

    • ReportContainFailure

      Fornisce istruzioni complete per ripristinare manualmente la configurazione originale del responsabile IAM durante uno scenario di errore del flusso di lavoro di contenimento.

    • ReportRestoreFailure

      Fornisce istruzioni dettagliate per completare manualmente il ripristino della configurazione originale del responsabile IAM durante uno scenario di errore del flusso di lavoro di ripristino.

  7. Al termine dell'esecuzione, consulta la sezione Output per i risultati dettagliati dell'esecuzione:

    • ContainIAMPrincipal.Output

      Fornisce informazioni dettagliate sulle azioni di contenimento eseguite quando Action è impostato su Contain ed DryRun è impostato su False. Include informazioni sulla posizione del backup, sulle politiche di rifiuto applicate e sulle configurazioni modificate.

    • RestoreIAMPrincipal.Output

      Fornisce informazioni dettagliate sulle azioni di ripristino eseguite quando Action è impostato su Restore ed DryRun è impostato su False. Include informazioni sulle configurazioni ripristinate e su eventuali problemi riscontrati durante il ripristino.

    • ReportContain.Output

      Fornisce informazioni dettagliate sulle azioni di contenimento che verrebbero eseguite quando Action è impostato su Contain ed DryRun è impostato su True. Include un confronto tra le configurazioni attuali e successive al contenimento.

    • ReportRestore.Output

      Fornisce informazioni dettagliate sulle azioni di ripristino che verrebbero eseguite quando Action è impostato su Restore ed DryRun è impostato su True. Mostra la configurazione corrente e la configurazione originale che verrebbe ripristinata.

    • ReportContainFailure.Output

      Fornisce istruzioni complete per ripristinare manualmente la configurazione originale del responsabile IAM durante uno scenario di errore del flusso di lavoro di contenimento.

    • ReportRestoreFailure.Output

      Fornisce istruzioni dettagliate per completare manualmente il ripristino della configurazione originale del responsabile IAM durante uno scenario di errore del flusso di lavoro di ripristino.

Output

Al termine dell'esecuzione, consulta la sezione Output per i risultati dettagliati:

  • ContainIAMPrincipal.Output

    Fornisce informazioni dettagliate sulle azioni di contenimento eseguite quando Action è impostato su Contain ed DryRun è impostato su False. Include informazioni sulla posizione del backup, sulle politiche di rifiuto applicate e sulle configurazioni modificate.

  • RestoreIAMPrincipal.Output

    Fornisce informazioni dettagliate sulle azioni di ripristino eseguite quando Action è impostato su Restore ed DryRun è impostato su False. Include informazioni sulle configurazioni ripristinate e su eventuali problemi riscontrati durante il ripristino.

  • ReportContain.Output

    Fornisce informazioni dettagliate sulle azioni di contenimento che verrebbero eseguite quando Action è impostato su Contain ed DryRun è impostato su True. Include un confronto tra le configurazioni attuali e successive al contenimento.

  • ReportRestore.Output

    Fornisce informazioni dettagliate sulle azioni di ripristino che verrebbero eseguite quando Action è impostato su Restore ed DryRun è impostato su True. Mostra la configurazione corrente e la configurazione originale che verrebbe ripristinata.

  • ReportContainFailure.Output

    Fornisce istruzioni complete per ripristinare manualmente la configurazione originale del responsabile IAM durante uno scenario di errore del flusso di lavoro di contenimento.

  • ReportRestoreFailure.Output

    Fornisce istruzioni dettagliate per completare manualmente il ripristino della configurazione originale del responsabile IAM durante uno scenario di errore del flusso di lavoro di ripristino.

Riferimenti

Systems Manager Automation