Translated ['src/pentesting-cloud/aws-security/aws-basic-information/REA

This commit is contained in:
Translator
2025-03-17 03:51:30 +00:00
parent 1ce6948b5b
commit b21b3756d3
3 changed files with 67 additions and 37 deletions

View File

@@ -24,9 +24,9 @@ Por lo tanto, hay **dos tipos de cuentas en una organización** (estamos habland
- Habilitar la integración con servicios de AWS compatibles para proporcionar funcionalidad de servicio en todas las cuentas de la organización.
- Es posible iniciar sesión como el usuario raíz utilizando el correo electrónico y la contraseña utilizados para crear esta cuenta raíz/organización.
La cuenta de gestión tiene las **responsabilidades de una cuenta pagadora** y es responsable de pagar todos los cargos que son acumulados por las cuentas miembro. No puedes cambiar la cuenta de gestión de una organización.
La cuenta de gestión tiene las **responsabilidades de una cuenta pagadora** y es responsable de pagar todos los cargos que se acumulen por las cuentas miembro. No puedes cambiar la cuenta de gestión de una organización.
- Las **cuentas miembro** constituyen el resto de las cuentas en una organización. Una cuenta puede ser miembro de solo una organización a la vez. Puedes adjuntar una política a una cuenta para aplicar controles solo a esa cuenta.
- Las **cuentas miembro** constituyen el resto de las cuentas en una organización. Una cuenta puede ser miembro de solo una organización a la vez. Puedes adjuntar una política a una cuenta para aplicar controles solo a esa cuenta.
- Las cuentas miembro **deben usar una dirección de correo electrónico válida** y pueden tener un **nombre**, en general no podrán gestionar la facturación (pero podrían recibir acceso a ella).
```
aws organizations create-account --account-name testingaccount --email testingaccount@lalala1233fr.com
@@ -42,7 +42,7 @@ aws organizations create-organizational-unit --parent-id r-lalala --name TestOU
Una **service control policy (SCP)** es una política que especifica los servicios y acciones que los usuarios y roles pueden usar en las cuentas que la SCP afecta. Las SCP son **similares a las políticas de permisos de IAM** excepto que **no otorgan ningún permiso**. En cambio, las SCP especifican los **permisos máximos** para una organización, unidad organizativa (OU) o cuenta. Cuando adjuntas una SCP a la raíz de tu organización o a una OU, la **SCP limita los permisos para las entidades en las cuentas miembros**.
Esta es la ÚNICA forma en que **incluso el usuario raíz puede ser detenido** de hacer algo. Por ejemplo, podría usarse para evitar que los usuarios desactiven CloudTrail o eliminen copias de seguridad.\
Esta es la ÚNICA manera en que **incluso el usuario raíz puede ser detenido** de hacer algo. Por ejemplo, podría usarse para evitar que los usuarios desactiven CloudTrail o eliminen copias de seguridad.\
La única forma de eludir esto es comprometer también la **cuenta maestra** que configura las SCP (la cuenta maestra no puede ser bloqueada).
> [!WARNING]
@@ -54,11 +54,29 @@ Ejemplos de SCP:
- Solo permitir regiones específicas
- Solo permitir servicios en la lista blanca
- Negar que GuardDuty, CloudTrail y S3 Public Block Access sean desactivados
- Negar que los roles de seguridad/respuesta a incidentes sean eliminados o modificados.
- Negar que roles de seguridad/respuesta a incidentes sean eliminados o modificados.
- Negar que las copias de seguridad sean eliminadas.
- Negar la creación de usuarios IAM y claves de acceso
Encuentra **ejemplos de JSON** en [https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps_examples.html](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps_examples.html)
Encuentra **ejemplos JSON** en [https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps_examples.html](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps_examples.html)
### Resource Control Policy (RCP)
Una **resource control policy (RCP)** es una política que define los **permisos máximos para los recursos dentro de tu organización AWS**. Las RCP son similares a las políticas de IAM en sintaxis pero **no otorgan permisos**—solo limitan los permisos que pueden aplicarse a los recursos por otras políticas. Cuando adjuntas una RCP a la raíz de tu organización, a una unidad organizativa (OU) o a una cuenta, la RCP limita los permisos de recursos en todos los recursos dentro del alcance afectado.
Esta es la ÚNICA manera de asegurar que **los recursos no pueden exceder los niveles de acceso predefinidos**—incluso si una política basada en identidad o en recursos es demasiado permisiva. La única forma de eludir estos límites es también modificar la RCP configurada por la cuenta de gestión de tu organización.
> [!WARNING]
> Las RCP solo restringen los permisos que los recursos pueden tener. No controlan directamente lo que los principales pueden hacer. Por ejemplo, si una RCP niega el acceso externo a un bucket S3, asegura que los permisos del bucket nunca permitan acciones más allá del límite establecido—incluso si una política basada en recursos está mal configurada.
Ejemplos de RCP:
- Restringir los buckets S3 para que solo puedan ser accedidos por principales dentro de tu organización
- Limitar el uso de claves KMS para permitir solo operaciones de cuentas organizativas de confianza
- Limitar permisos en colas SQS para prevenir modificaciones no autorizadas
- Hacer cumplir límites de acceso en secretos de Secrets Manager para proteger datos sensibles
Encuentra ejemplos en [AWS Organizations Resource Control Policies documentation](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html)
### ARN
@@ -74,7 +92,7 @@ Note que hay 4 particiones en AWS pero solo 3 formas de llamarlas:
- AWS US public Internet (GovCloud): `aws-us-gov`
- AWS Secret (US Classified): `aws`
## IAM - Identity and Access Management
## IAM - Gestión de Identidad y Acceso
IAM es el servicio que te permitirá gestionar **Autenticación**, **Autorización** y **Control de Acceso** dentro de tu cuenta de AWS.
@@ -84,15 +102,15 @@ IAM es el servicio que te permitirá gestionar **Autenticación**, **Autorizaci
IAM se puede definir por su capacidad para gestionar, controlar y gobernar los mecanismos de autenticación, autorización y control de acceso de identidades a tus recursos dentro de tu cuenta de AWS.
### [AWS account root user](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html) <a href="#id_root" id="id_root"></a>
### [Usuario raíz de la cuenta de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html) <a href="#id_root" id="id_root"></a>
Cuando creas por primera vez una cuenta de Amazon Web Services (AWS), comienzas con una identidad de inicio de sesión única que tiene **acceso completo a todos** los servicios y recursos de AWS en la cuenta. Este es el _**usuario raíz**_ de la cuenta de AWS y se accede iniciando sesión con la **dirección de correo electrónico y la contraseña que usaste para crear la cuenta**.
Cuando creas por primera vez una cuenta de Amazon Web Services (AWS), comienzas con una única identidad de inicio de sesión que tiene **acceso completo a todos** los servicios y recursos de AWS en la cuenta. Este es el _**usuario raíz**_ de la cuenta de AWS y se accede iniciando sesión con la **dirección de correo electrónico y la contraseña que utilizaste para crear la cuenta**.
Ten en cuenta que un nuevo **usuario administrador** tendrá **menos permisos que el usuario raíz**.
Desde un punto de vista de seguridad, se recomienda crear otros usuarios y evitar usar este.
Desde el punto de vista de la seguridad, se recomienda crear otros usuarios y evitar usar este.
### [IAM users](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html) <a href="#id_iam-users" id="id_iam-users"></a>
### [Usuarios de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html) <a href="#id_iam-users" id="id_iam-users"></a>
Un _usuario_ de IAM es una entidad que creas en AWS para **representar a la persona o aplicación** que lo utiliza para **interactuar con AWS**. Un usuario en AWS consiste en un nombre y credenciales (contraseña y hasta dos claves de acceso).
@@ -102,13 +120,13 @@ Los usuarios pueden tener **MFA habilitado para iniciar sesión** a través de l
#### CLI
- **Access Key ID**: 20 caracteres alfanuméricos aleatorios en mayúsculas como AKHDNAPO86BSHKDIRYT
- **Secret access key ID**: 40 caracteres aleatorios en mayúsculas y minúsculas: S836fh/J73yHSb64Ag3Rkdi/jaD6sPl6/antFtU (No es posible recuperar los IDs de claves de acceso secreto perdidos).
- **ID de clave de acceso**: 20 caracteres alfanuméricos aleatorios en mayúsculas como AKHDNAPO86BSHKDIRYT
- **ID de clave de acceso secreta**: 40 caracteres aleatorios en mayúsculas y minúsculas: S836fh/J73yHSb64Ag3Rkdi/jaD6sPl6/antFtU (No es posible recuperar IDs de claves de acceso secretas perdidas).
Siempre que necesites **cambiar la Clave de Acceso**, este es el proceso que debes seguir:\
Siempre que necesites **cambiar la clave de acceso**, este es el proceso que debes seguir:\
_Crear una nueva clave de acceso -> Aplicar la nueva clave al sistema/aplicación -> marcar la original como inactiva -> Probar y verificar que la nueva clave de acceso funciona -> Eliminar la clave de acceso antigua_
### MFA - Multi Factor Authentication
### MFA - Autenticación de Múltiples Factores
Se utiliza para **crear un factor adicional para la autenticación** además de tus métodos existentes, como la contraseña, creando así un nivel de autenticación multifactor.\
Puedes usar una **aplicación virtual gratuita o un dispositivo físico**. Puedes usar aplicaciones como Google Authenticator de forma gratuita para activar un MFA en AWS.
@@ -128,7 +146,7 @@ Como [**se indica aquí**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_c
### [Grupos de usuarios de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) <a href="#id_iam-groups" id="id_iam-groups"></a>
Un [grupo de usuarios de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) es una forma de **adjuntar políticas a múltiples usuarios** a la vez, lo que puede facilitar la gestión de los permisos para esos usuarios. **Los roles y grupos no pueden ser parte de un grupo**.
Un [grupo de usuarios](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) de IAM es una forma de **adjuntar políticas a múltiples usuarios** al mismo tiempo, lo que puede facilitar la gestión de los permisos para esos usuarios. **Los roles y grupos no pueden ser parte de un grupo**.
Puedes adjuntar una **política basada en identidad a un grupo de usuarios** para que todos los **usuarios** en el grupo de usuarios **reciban los permisos de la política**. No **puedes** identificar un **grupo de usuarios** como un **`Principal`** en una **política** (como una política basada en recursos) porque los grupos se relacionan con permisos, no con autenticación, y los principales son entidades IAM autenticadas.
@@ -137,13 +155,13 @@ Aquí hay algunas características importantes de los grupos de usuarios:
- Un **grupo** de usuarios puede **contener muchos usuarios**, y un **usuario** puede **pertenecer a múltiples grupos**.
- **Los grupos de usuarios no pueden estar anidados**; solo pueden contener usuarios, no otros grupos de usuarios.
- No hay **un grupo de usuarios predeterminado que incluya automáticamente a todos los usuarios en la cuenta de AWS**. Si deseas tener un grupo de usuarios así, debes crearlo y asignar a cada nuevo usuario a él.
- El número y tamaño de los recursos IAM en una cuenta de AWS, como el número de grupos y el número de grupos de los que un usuario puede ser miembro, son limitados. Para más información, consulta [cuotas de IAM y AWS STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html).
- El número y tamaño de los recursos de IAM en una cuenta de AWS, como el número de grupos y el número de grupos de los que un usuario puede ser miembro, son limitados. Para más información, consulta [cuotas de IAM y AWS STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html).
### [Roles de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) <a href="#id_iam-roles" id="id_iam-roles"></a>
Un **rol** de IAM es muy **similar** a un **usuario**, en el sentido de que es una **identidad con políticas de permisos que determinan qué** puede y no puede hacer en AWS. Sin embargo, un rol **no tiene ninguna credencial** (contraseña o claves de acceso) asociada. En lugar de estar asociado de manera única a una persona, un rol está destinado a ser **asumido por cualquier persona que lo necesite (y tenga suficientes permisos)**. Un **usuario de IAM puede asumir un rol para temporalmente** adoptar diferentes permisos para una tarea específica. Un rol puede ser **asignado a un** [**usuario federado**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html) que inicia sesión utilizando un proveedor de identidad externo en lugar de IAM.
Un rol de IAM consta de **dos tipos de políticas**: una **política de confianza**, que no puede estar vacía, definiendo **quién puede asumir** el rol, y una **política de permisos**, que no puede estar vacía, definiendo **qué puede acceder**.
Un rol de IAM consta de **dos tipos de políticas**: una **política de confianza**, que no puede estar vacía, que define **quién puede asumir** el rol, y una **política de permisos**, que no puede estar vacía, que define **a qué puede acceder**.
#### Servicio de Token de Seguridad de AWS (STS)
@@ -151,7 +169,7 @@ El Servicio de Token de Seguridad de AWS (STS) es un servicio web que facilita l
### [Credenciales temporales en IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) <a href="#id_temp-creds" id="id_temp-creds"></a>
**Las credenciales temporales se utilizan principalmente con roles de IAM**, pero también hay otros usos. Puedes solicitar credenciales temporales que tengan un conjunto de permisos más restringido que tu usuario IAM estándar. Esto **previene** que **realices accidentalmente tareas que no están permitidas** por las credenciales más restringidas. Un beneficio de las credenciales temporales es que expiran automáticamente después de un período de tiempo establecido. Tienes control sobre la duración durante la cual las credenciales son válidas.
Las **credenciales temporales se utilizan principalmente con roles de IAM**, pero también hay otros usos. Puedes solicitar credenciales temporales que tengan un conjunto de permisos más restringido que tu usuario de IAM estándar. Esto **previene** que **realices accidentalmente tareas que no están permitidas** por las credenciales más restringidas. Un beneficio de las credenciales temporales es que expiran automáticamente después de un período de tiempo establecido. Tienes control sobre la duración durante la cual las credenciales son válidas.
### Políticas
@@ -162,8 +180,8 @@ Se utilizan para asignar permisos. Hay 2 tipos:
- Políticas administradas por AWS (preconfiguradas por AWS)
- Políticas administradas por el cliente: configuradas por ti. Puedes crear políticas basadas en políticas administradas por AWS (modificando una de ellas y creando la tuya propia), utilizando el generador de políticas (una vista GUI que te ayuda a otorgar y denegar permisos) o escribiendo la tuya propia.
Por **defecto, el acceso** es **denegado**, el acceso se otorgará si se ha especificado un rol explícito.\
Si **existe un "Deny" único, anulará el "Allow"**, excepto para las solicitudes que utilizan las credenciales de seguridad raíz de la cuenta de AWS (que están permitidas por defecto).
Por **defecto, el acceso** es **denegado**, el acceso se otorgará si se ha especificado un rol explícito.\
Si **existe un solo "Deny", anulará el "Allow"**, excepto para las solicitudes que utilizan las credenciales de seguridad raíz de la cuenta de AWS (que están permitidas por defecto).
```javascript
{
"Version": "2012-10-17", //Version of the policy
@@ -198,7 +216,7 @@ Las políticas en línea son útiles si deseas **mantener una relación estricta
Estas son **políticas** que se pueden definir en **recursos**. **No todos los recursos de AWS las soportan**.
Si un principal no tiene un denegación explícita sobre ellos, y una política de recurso les otorga acceso, entonces se les permite.
Si un principal no tiene una denegación explícita sobre ellos, y una política de recurso les otorga acceso, entonces se les permite.
### Límites de IAM
@@ -229,7 +247,7 @@ Por lo tanto, si en algún momento te enfrentas al error "... porque ninguna pol
La federación de identidad **permite a los usuarios de proveedores de identidad que son externos** a AWS acceder a los recursos de AWS de manera segura sin tener que proporcionar credenciales de usuario de AWS de una cuenta IAM válida.\
Un ejemplo de un proveedor de identidad puede ser tu propio **Microsoft Active Directory** corporativo (a través de **SAML**) o servicios de **OpenID** (como **Google**). El acceso federado permitirá a los usuarios dentro de él acceder a AWS.
Para configurar esta confianza, se genera un **Proveedor de Identidad IAM (SAML u OAuth)** que **confiará** en la **otra plataforma**. Luego, al menos un **rol IAM es asignado (confiando) al Proveedor de Identidad**. Si un usuario de la plataforma confiable accede a AWS, lo hará como el rol mencionado.
Para configurar esta confianza, se genera un **Proveedor de Identidad IAM (SAML u OAuth)** que **confiará** en la **otra plataforma**. Luego, al menos un **rol IAM es asignado (confiando) al Proveedor de Identidad**. Si un usuario de la plataforma de confianza accede a AWS, lo hará como el rol mencionado.
Sin embargo, generalmente querrás dar un **rol diferente dependiendo del grupo del usuario** en la plataforma de terceros. Entonces, varios **roles IAM pueden confiar** en el Proveedor de Identidad de terceros y la plataforma de terceros será la que permitirá a los usuarios asumir un rol u otro.
@@ -259,10 +277,10 @@ Es posible **dar permisos a través de políticas en línea a roles creados a tr
Por lo tanto, incluso si ves 2 roles con una política en línea llamada **`AwsSSOInlinePolicy`**, **no significa que tenga los mismos permisos**.
### Confianza y Roles entre Cuentas
### Confianzas y Roles entre Cuentas
**Un usuario** (confiando) puede crear un Rol entre Cuentas con algunas políticas y luego, **permitir a otro usuario** (confiado) **acceder a su cuenta** pero solo **teniendo el acceso indicado en las nuevas políticas del rol**. Para crear esto, solo crea un nuevo Rol y selecciona Rol entre Cuentas. Los roles para Acceso entre Cuentas ofrecen dos opciones. Proporcionar acceso entre cuentas de AWS que posees, y proporcionar acceso entre una cuenta que posees y una cuenta de AWS de terceros.\
Se recomienda **especificar el usuario que es confiado y no poner algo genérico** porque de lo contrario, otros usuarios autenticados como usuarios federados también podrán abusar de esta confianza.
Se recomienda **especificar el usuario que es confiado y no poner algo genérico** porque si no, otros usuarios autenticados como usuarios federados también podrán abusar de esta confianza.
### AWS Simple AD
@@ -271,7 +289,7 @@ No soportado:
- Relaciones de Confianza
- Centro de Administración de AD
- Soporte completo de API de PS
- Papelera de Reciclaje de AD
- Papelera de reciclaje de AD
- Cuentas de Servicio Administradas por Grupo
- Extensiones de Esquema
- Sin acceso directo a OS o Instancias
@@ -287,9 +305,9 @@ La aplicación utiliza AssumeRoleWithWebIdentity para crear credenciales tempora
AWS Identity and Access Management (IAM) proporciona **control de acceso granular** en toda AWS. Con IAM, puedes especificar **quién puede acceder a qué servicios y recursos**, y bajo qué condiciones. Con las políticas de IAM, gestionas los permisos para tu fuerza laboral y sistemas para **asegurar permisos de menor privilegio**.
### Prefijos de ID IAM
### Prefijos de ID de IAM
En [**esta página**](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-unique-ids) puedes encontrar los **prefijos de ID IAM** de las claves dependiendo de su naturaleza:
En [**esta página**](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-unique-ids) puedes encontrar los **prefijos de ID de IAM** de las claves dependiendo de su naturaleza:
| Código de Identificador | Descripción |
| ---- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
@@ -305,7 +323,7 @@ En [**esta página**](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference
| APKA | Clave pública |
| AROA | Rol |
| ASCA | Certificado |
| ASIA | [IDs de claves de acceso temporales (AWS STS)](https://docs.aws.amazon.com/STS/latest/APIReference/API_Credentials.html) usan este prefijo, pero son únicos solo en combinación con la clave de acceso secreta y el token de sesión. |
| ASIA | [IDs de claves de acceso temporales (AWS STS)](https://docs.aws.amazon.com/STS/latest/APIReference/API_Credentials.html) utilizan este prefijo, pero son únicos solo en combinación con la clave de acceso secreta y el token de sesión. |
### Permisos recomendados para auditar cuentas
@@ -320,12 +338,12 @@ Los siguientes privilegios otorgan varios accesos de lectura de metadatos:
- `directconnect:DescribeConnections`
- `dynamodb:ListTables`
## Miscelánea
## Varios
### Autenticación CLI
Para que un usuario regular se autentique en AWS a través de CLI, necesitas tener **credenciales locales**. Por defecto, puedes configurarlas **manualmente** en `~/.aws/credentials` o **ejecutando** `aws configure`.\
En ese archivo puedes tener más de un perfil, si **no se especifica un perfil** usando el **aws cli**, se usará el llamado **`[default]`** en ese archivo.\
En ese archivo puedes tener más de un perfil, si **no se especifica un perfil** usando el **aws cli**, se utilizará el llamado **`[default]`** en ese archivo.\
Ejemplo de archivo de credenciales con más de 1 perfil:
```
[default]
@@ -360,5 +378,6 @@ Si estás buscando algo **similar** a esto pero para el **navegador**, puedes re
- [https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html)
- [https://aws.amazon.com/iam/](https://aws.amazon.com/iam/)
- [https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)
- [https://aws.amazon.com/blogs/aws/introducing-resource-control-policies-rcps-a-new-authorization-policy/](https://aws.amazon.com/blogs/aws/introducing-resource-control-policies-rcps-a-new-authorization-policy/)
{{#include ../../../banners/hacktricks-training.md}}