View a markdown version of this page

AWSSupport-ContainIAMPrincipal - AWS Systems Manager Referencia del manual de procedimientos de Automatización

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

AWSSupport-ContainIAMPrincipal

Descripción

En caso de que se produzca un incidente de seguridad o se sospeche que un usuario AWS Identity and Access Management (IAM) User/Role o del centro de AWS identidad (IDC) está en peligro, es fundamental aislar rápidamente la identidad afectada y, al mismo tiempo, conservar su configuración para la investigación. El AWSSupport-ContainIAMPrincipal manual proporciona un enfoque estructurado y reversible para contener las identidades de IAM o IDC comprometidas, lo que bloquea de manera efectiva su acceso a AWS los recursos y evita la posible propagación del riesgo.

Este proceso automatizado permite la investigación sin alterar permanentemente la configuración de la identidad, lo que permite restablecer el acceso normal cuando se considere apropiado. El proceso de contención mantiene al usuario o al rol en IAM o al usuario en IDC, al tiempo que lo aísla de manera efectiva de todas las actividades de la red. Este aislamiento impide que el recurso de identidad contenido se comunique con los recursos de su nube privada virtual de Amazon o acceda a los recursos de Internet. La contención está diseñada para ser reversible, lo que permite restablecer el acceso normal cuando se considere apropiado.

¿Cómo funciona?

El AWSSupport-ContainIAMPrincipal manual implementa un proceso de contención integral para los usuarios, los roles y los usuarios del Identity Center de IAM. Cuando se ejecuta en Contain modo, primero valida todos los parámetros de entrada y realiza comprobaciones de seguridad en el bucket de Amazon S3 especificado. A continuación, recopila información detallada sobre el principal de IAM de destino y aplica las medidas de contención adecuadas en función del tipo de principal. Para los usuarios de IAM, inhabilita las claves de acceso, elimina el acceso a la consola e incorpora una política de denegación. Para las funciones de IAM, adjunta una política de denegación que revoca los permisos de las sesiones creadas antes de la contención. Para los usuarios del Identity Center, elimina los conjuntos de permisos y las membresías a grupos y aplica una política de denegación. Durante todo el proceso, el runbook realiza copias de seguridad de la configuración original en un bucket de Amazon S3 para su posible restauración. Cuando se ejecuta en Restore modo, intenta revertir el principal a su estado anterior a la contención mediante la configuración de la que se hizo una copia de seguridad. El manual incluye una DryRun opción para obtener una vista previa de los cambios sin aplicarlos y proporciona informes completos sobre las operaciones exitosas y los escenarios de error.

importante
  • Uso de privilegios elevados: este documento de SSM realiza varias operaciones que requieren privilegios elevados, como la modificación de las políticas de identidad de IAM e IDC y la aplicación de configuraciones de cuarentena. Estas acciones podrían provocar una escalada de privilegios o afectar a otras cargas de trabajo que dependen de las identidades objetivo. Debe revisar los permisos concedidos al rol especificado por el AutomationAssumeRole parámetro y asegurarse de que son adecuados para el caso de uso previsto. Puedes consultar la siguiente AWS documentación para obtener más información sobre los permisos de IAM:

  • Riesgos de falta de disponibilidad de la carga de trabajo: este documento de Systems Manager lleva a cabo acciones de aislamiento que podrían provocar la falta de disponibilidad o la interrupción de las cargas de trabajo. Cuando se ejecuta durante un evento de seguridad, restringirá el acceso al recurso afectado al revocar los permisos de AWS API de las identidades de IAM e IDC especificadas, lo que impedirá que realicen llamadas o acciones a la API. AWS Esto podría afectar a cualquier aplicación o servicio que dependa de estas identidades.

  • Creación de recursos adicionales: el documento de automatización puede crear recursos adicionales de forma condicional, como un bucket de Amazon Simple Storage Service (Amazon S3) y objetos de Amazon S3 almacenados en él, según los parámetros de ejecución. Estos recursos generarán cargos adicionales en función del uso que haga AWS .

  • Riesgos de restauración: si el parámetro Acción está establecido enRestore, este documento de SSM intenta restaurar la configuración de identidad de IAM o IDC a su estado original. Sin embargo, existe el riesgo de que el proceso de restauración falle y deje la identidad de IAM o IDC en un estado incoherente. El documento proporciona instrucciones para la restauración manual en caso de que se produzcan estos errores, pero debes estar preparado para gestionar los posibles problemas durante el proceso de restauración.

Se recomienda revisar minuciosamente el manual de ejecución, comprender sus posibles impactos y probarlo en un entorno que no sea de producción antes de ejecutarlo en su entorno de producción.

Ejecuta esta automatización (consola)

Tipo de documento

Automatización

Propietario

Amazon

Plataformas

/

Permisos de IAM necesarios

El AutomationAssumeRole parámetro requiere los siguientes permisos para usar correctamente el runbook:

  • s3: GetBucketLocation

  • s3: GetBucket

  • s3: ListBucket

  • s3: GetBucketPublicAccessBlocks

  • s3: GetAccountPublicAccessBlocks

  • s3: GetBucketPolicyStatus

  • s3: GetBucketAcl

  • s3: GetObject

  • s3: CreateBucket

  • s3: PutObject

  • Objetivo: 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

  • soy: dispositivo TAGMFA

  • soy: PutRolePolicy

  • iam: TagPolicy

  • iam: TagRole

  • iam: TagUser

  • iam: UntagUser

  • iam: UntagRole

  • organizaciones: ListAccounts

  • así que: ListPermissionSetsProvisionedToAccount

  • sso: GetInlinePolicyForPermissionSet

  • sso: ListInstances

  • directorio sso: SearchUsers

  • sso: ListPermissionSets

  • sso: ListAccountAssignments

  • directorio sso: DescribeUser

  • almacén de identidades: ListUsers

  • almacén de identidades: ListGroups

  • almacén de identidades: IsMemberInGroups

  • almacén de identidades: ListGroupMemberships

  • administrador de secretos: CreateSecret

  • administrador de secretos: DeleteSecret

  • así que: DeleteAccountAssignment

  • sso: PutInlinePolicyToPermissionSet

  • sso: CreateAccountAssignment

  • sso: DeleteInlinePolicyFromPermissionSet

  • sso: TagResource

  • sso: UntagResource

  • almacén de identidades: DeleteGroupMembership

  • almacén de identidades: CreateGroupMembership

Este es un ejemplo de una política de IAM que otorga los permisos necesarios para: 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": "*" } ] }

Instrucciones

Siga estos pasos para configurar la automatización:

  1. Navegue hasta AWSSupport-ContainIAMPrincipal la consola de AWS Systems Manager.

  2. Elija Execute automation (Ejecutar automatización).

  3. Para los parámetros de entrada, introduzca lo siguiente:

    • AutomationAssumeRole (Opcional):

      • Descripción: (opcional) El nombre de recurso de Amazon (ARN) de la función de administración de AWS identidades y accesos (IAM) que permite a Systems Manager Automation realizar las acciones en su nombre. Si no se especifica ningún rol, Systems Manager Automation utiliza los permisos del usuario que inicia este libro de operaciones.

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

    • PrincipalType (Obligatorio):

      • Descripción: (Obligatorio) El tipo de principal de AWS IAM: usuario de IAM, rol de IAM o usuario de Identity Center.

      • Tipo: cadena

      • Valores permitidos: IAM user|IAM role|Identity Center user

    • PrincipalName (Obligatorio):

      • Descripción: (Obligatorio) El nombre del director de IAM. Para los usuarios del Identity Center, proporcione el nombre de usuario.

      • Tipo: cadena

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

    • Acción (obligatoria):

      • Descripción: (Obligatorio) Seleccione Contain esta opción para aislar el principal de IAM de destino o Restore intentar restaurar el principal de IAM a su configuración original a partir de una copia de seguridad anterior.

      • Tipo: cadena

      • Valores permitidos: Contain|Restore

    • DryRun (Opcional):

      • Descripción: (Opcional) Si se establece entrue, la automatización no realizará ningún cambio en el principal de IAM objetivo, sino que generará lo que habría intentado cambiar, detallando cada paso. Valor predeterminado: true.

      • Tipo: Booleano

      • Valores permitidos: true|false

    • ActivateDisabledKeys(Condicional):

      • Descripción: (Condicional) Si el parámetro de entrada Acción está establecido en Restore y PrincipalType está establecido como usuario de IAM, esta opción determina si esta automatización debe intentar activar las claves de acceso asociadas en caso de estar desactivada. Tenga en cuenta que no se puede verificar la integridad de una clave de acceso comprometida. AWS recomienda encarecidamente no reactivar una clave comprometida. En su lugar, es recomendable generar claves nuevas. Valor predeterminado: false.

      • Tipo: Booleano

      • Valores permitidos: true|false

    • BackupS3BucketName (Condicional):

      • Descripción: (Condicional) El bucket de Amazon S3 para hacer una copia de seguridad de la configuración principal de IAM cuando la acción está establecida Contain o para restaurar la configuración desde cuando la acción está Restore establecida. Tenga en cuenta que si la acción especificada es la acción especificada Contain y el libro de operaciones no puede acceder al bucket o no se proporciona un valor, se creará un nuevo bucket en su cuenta con ese nombre. awssupport-containiamprincipal-<random-string> Si DryRun está establecido en true este parámetro, es obligatorio.

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

    • BackupS3KeyName (Condicional):

      • Descripción: (Condicional) Si la acción se establece enRestore, especifica la clave de Amazon Amazon S3 que utilizará la automatización para intentar restaurar la configuración principal de IAM. La clave de Amazon Amazon S3 suele seguir este formato:{year}/{month}/{day}/{hour}/{minute}/{automation_execution_id}.json. La clave se puede obtener del resultado de una ejecución de automatización de contención anterior.

      • Tipo: cadena

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

    • BackupS3BucketAccess(Condicional):

      • Descripción: (Condicional) El ARN de los usuarios o roles de IAM a los que se les permitirá acceder al bucket de Amazon S3 de respaldo después de ejecutar las acciones de contención. Este parámetro es obligatorio cuando Action es. Contain El usuario en cuyo contexto se ejecuta la automatización o AutomationAssumeRole, en su defecto, el usuario en cuyo contexto se ejecuta la automatización se añade automáticamente a la lista.

      • Tipo: StringList

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

    • TagIdentifier (Opcional):

      • Descripción: (Opcional) Etiquete al director de IAM con una etiqueta de su elección utilizando el siguiente formato:Key=<EXAMPLE_KEY>,Value=<EXAMPLE_VALUE>. Esta opción le permite realizar un seguimiento de los directores de IAM a los que se ha dirigido este manual. Nota: Las claves y los valores de las etiquetas distinguen mayúsculas de minúsculas.

      • Tipo: cadena

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

  4. Seleccione Ejecutar.

  5. Se inicia la automatización.

  6. Este documento realiza los siguientes pasos:

    • ValidateRequiredInputs

      Valida los parámetros de entrada de automatización necesarios en función de lo especificado. Action

    • CheckBackupS3BucketName

      Comprueba si el bucket de Amazon S3 de destino puede conceder read o dar acceso write público a sus objetos. En el caso de un flujo de trabajo de contención, se crea un nuevo bucket de Amazon S3 si el BackupS3BucketName bucket no existe.

    • BranchOnAction

      Ramifica la automatización en función del valor de lo especificadoAction.

    • BranchOnPrincipalTypeAndDryRun

      Difunde la automatización en función del tipo de principal de IAM (usuario de IAM, rol de IAM o usuario del Identity Center) y de si se está ejecutando en modo. DryRun

    • BranchOnPrincipalTypeForContain

      La automatización se bifurca en función de la Contain acción y del tipo de principal de IAM (usuario de IAM, rol de IAM o usuario del Identity Center) especificado en la entrada.

    • Obtenga un usuario de IAM

      Obtiene la hora de creación y el nombre de usuario del usuario de IAM objetivo.

    • GetIAMUserDetails

      Obtiene y almacena la configuración del usuario de IAM objetivo, incluidas las políticas en línea, las políticas administradas, las claves de acceso, los dispositivos de MFA y el perfil de inicio de sesión.

    • UpdateS3KeyForUser

      Actualiza la variable «S3Key» de automatización a partir del resultado del paso. GetIAMUserDetails

    • Obtén iAMRole

      Obtiene la hora de creación, el nombre del rol y la ruta del rol de IAM objetivo.

    • GetIAMRoleDetails

      Obtiene y almacena la configuración del rol de IAM objetivo, incluidas las políticas integradas y las políticas administradas asociadas al rol.

    • UpdateS3KeyForRole

      Actualiza la variable «S3Key» de automatización a partir del resultado del paso. GetIAMRoleDetails

    • GetIdentityStoreId

      Obtiene el ID de la instancia del AWS IAM Identity Center asociada a la cuenta. AWS

    • Obtenga el identificador de usuario

      Obtiene el ID de usuario del Identity Center objetivo mediante el ID del almacén de identidades.

    • GatherIDCUserDetails

      Obtiene y almacena la configuración del usuario objetivo del Identity Center, incluidas las asignaciones de cuentas, los conjuntos de permisos asociados y las políticas en línea.

    • UpdateS3KeyForIDCUser

      Actualiza la variable «S3Key» de automatización a partir del resultado del paso. GatherIDCUserDetails

    • BranchOnIdentityContain

      Divide la automatización en función del valor DryRun y el tipo de principal de IAM de la acción. Contain

    • BranchOnDisableAccessKeys

      Divide la automatización en función de si el usuario de IAM tiene claves de acceso que deben deshabilitarse.

    • DisableAccessKeys

      Deshabilita las claves de acceso de los usuarios de IAM activas.

    • BranchOnDisableConsoleAccess

      Se ramifica en función de si el usuario de IAM tiene habilitado o no el acceso a la consola de AWS administración.

    • DisableConsoleAccess

      Elimina el acceso basado en contraseña del usuario de IAM a la consola de administración. AWS

    • AttachInlineDenyPolicyToUser

      Aplica una política de denegación al usuario de IAM para revocar los permisos de los tokens de sesión más antiguos.

    • AttachInlineDenyPolicyToRole

      Adjunta una política de denegación a la función de IAM para revocar los permisos de los tokens de sesión más antiguos.

    • RemovePermissionSets

      Elimina los conjuntos de permisos asociados al usuario del Identity Center.

    • RemoveIDCUserFromIDCGroups

      Elimina al usuario del Identity Center de los grupos del Identity Center.

    • AttachInlineDenyPolicyToPermissionSet

      Adjunta una política de denegación a los conjuntos de permisos asociados al usuario del Identity Center.

    • BranchOnReactivateKeys

      Durante el proceso de restauración, ramifica la automatización en función del ActivateDisabledKeys parámetro.

    • DetachInlineDenyPolicy

      Elimina la política de denegación asociada a la función de IAM durante el proceso de contención.

    • DetachInlineDenyPolicyFromPermissionSet

      Elimina la política de denegación asociada a los conjuntos de permisos durante el proceso de contención.

    • ReportContain

      Genera información detallada sobre las acciones de contención que se llevarían a cabo cuando DryRun se establezca en. True

    • ReportRestore

      Genera información detallada sobre las acciones de restauración que se llevarían a True cabo cuando DryRun se establezca en.

    • ReportContainFailure

      Proporciona instrucciones completas para restaurar manualmente la configuración original del principal de IAM durante un escenario de error en el flujo de trabajo de contención.

    • ReportRestoreFailure

      Proporciona instrucciones detalladas para completar manualmente la restauración de la configuración original del principal de IAM durante un escenario de error en el flujo de trabajo de restauración.

  7. Una vez finalizada la ejecución, consulte la sección Resultados para ver los resultados detallados de la ejecución:

    • ContainIAMPrincipal.Output

      Proporciona información detallada sobre las acciones de contención que se realizan cuando la acción se establece en Contener y DryRun se establece en False. Incluye información sobre la ubicación de la copia de seguridad, las políticas de denegación aplicadas y las configuraciones modificadas.

    • RestoreIAMPrincipal.Output

      Proporciona información detallada sobre las acciones de restauración que se realizan cuando la acción se establece en Restaurar y DryRun se establece en False. Incluye información sobre las configuraciones restauradas y cualquier problema surgido durante la restauración.

    • ReportContain.Output

      Genera información detallada sobre las acciones de contención que se llevarían a cabo si la acción se establece en Contain y DryRun se establece en True. Incluye una comparación de las configuraciones actuales y posteriores a la contención.

    • ReportRestore.Output

      Genera información detallada sobre las acciones de restauración que se llevarían a cabo si la acción se establece en Restaurar y DryRun se establece en True. Muestra la configuración actual y la configuración original que se restauraría.

    • ReportContainFailure.Output

      Proporciona instrucciones completas para restaurar manualmente la configuración original del principal de IAM durante un escenario de error en el flujo de trabajo de contención.

    • ReportRestoreFailure.Output

      Proporciona instrucciones detalladas para completar manualmente la restauración de la configuración original del principal de IAM durante un escenario de error en el flujo de trabajo de restauración.

Salidas

Una vez finalizada la ejecución, revise la sección Salidas para ver los resultados detallados:

  • ContainIAMPrincipal.Output

    Proporciona información detallada sobre las acciones de contención que se realizan cuando la acción se establece en Contener y DryRun se establece en False. Incluye información sobre la ubicación de la copia de seguridad, las políticas de denegación aplicadas y las configuraciones modificadas.

  • RestoreIAMPrincipal.Output

    Proporciona información detallada sobre las acciones de restauración que se realizan cuando la acción se establece en Restaurar y DryRun se establece en False. Incluye información sobre las configuraciones restauradas y cualquier problema surgido durante la restauración.

  • ReportContain.Output

    Genera información detallada sobre las acciones de contención que se llevarían a cabo si la acción se establece en Contain y DryRun se establece en True. Incluye una comparación de las configuraciones actuales y posteriores a la contención.

  • ReportRestore.Output

    Genera información detallada sobre las acciones de restauración que se llevarían a cabo si la acción se establece en Restaurar y DryRun se establece en True. Muestra la configuración actual y la configuración original que se restauraría.

  • ReportContainFailure.Output

    Proporciona instrucciones completas para restaurar manualmente la configuración original del principal de IAM durante un escenario de error en el flujo de trabajo de contención.

  • ReportRestoreFailure.Output

    Proporciona instrucciones detalladas para completar manualmente la restauración de la configuración original del principal de IAM durante un escenario de error en el flujo de trabajo de restauración.

Referencias

Automatización de Systems Manager