mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-26 20:54:14 -08:00
Translated ['src/pentesting-cloud/aws-security/aws-basic-information/REA
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
|
||||
### Cuentas
|
||||
|
||||
En AWS hay una **cuenta raíz**, que es el **contenedor principal para todas las cuentas** de tu **organización**. Sin embargo, no necesitas usar esa cuenta para desplegar recursos, puedes crear **otras cuentas para separar diferentes infraestructuras de AWS** entre ellas.
|
||||
En AWS, hay una **cuenta raíz**, que es el **contenedor principal para todas las cuentas** de tu **organización**. Sin embargo, no necesitas usar esa cuenta para desplegar recursos, puedes crear **otras cuentas para separar diferentes infraestructuras de AWS** entre ellas.
|
||||
|
||||
Esto es muy interesante desde el punto de vista de la **seguridad**, ya que **una cuenta no podrá acceder a los recursos de otra cuenta** (excepto si se crean puentes específicamente), de esta manera puedes crear límites entre los despliegues.
|
||||
|
||||
@@ -24,7 +24,7 @@ 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 se acumulen 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 son acumulados 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 **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).
|
||||
@@ -33,7 +33,7 @@ aws organizations create-account --account-name testingaccount --email testingac
|
||||
```
|
||||
### **Unidades de Organización**
|
||||
|
||||
Las cuentas se pueden agrupar en **Unidades de Organización (OU)**. De esta manera, puedes crear **políticas** para la Unidad de Organización que se van a **aplicar a todas las cuentas hijas**. Ten en cuenta que una OU puede tener otras OUs como hijas.
|
||||
Las cuentas pueden agruparse en **Unidades de Organización (OU)**. De esta manera, puedes crear **políticas** para la Unidad de Organización que se van a **aplicar a todas las cuentas hijas**. Ten en cuenta que una OU puede tener otras OUs como hijas.
|
||||
```bash
|
||||
# You can get the root id from aws organizations list-roots
|
||||
aws organizations create-organizational-unit --parent-id r-lalala --name TestOU
|
||||
@@ -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 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.\
|
||||
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.\
|
||||
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]
|
||||
@@ -64,7 +64,7 @@ Encuentra **ejemplos JSON** en [https://docs.aws.amazon.com/organizations/latest
|
||||
|
||||
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.
|
||||
Esta es la ÚNICA forma 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.
|
||||
@@ -92,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 - Gestión de Identidad y Acceso
|
||||
## IAM - Identity and Access Management
|
||||
|
||||
IAM es el servicio que te permitirá gestionar **Autenticación**, **Autorización** y **Control de Acceso** dentro de tu cuenta de AWS.
|
||||
|
||||
@@ -102,7 +102,7 @@ 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.
|
||||
|
||||
### [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>
|
||||
### [AWS account root user](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 ú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**.
|
||||
|
||||
@@ -110,7 +110,7 @@ Ten en cuenta que un nuevo **usuario administrador** tendrá **menos permisos qu
|
||||
|
||||
Desde el punto de vista de la seguridad, se recomienda crear otros usuarios y evitar usar este.
|
||||
|
||||
### [Usuarios de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html) <a href="#id_iam-users" id="id_iam-users"></a>
|
||||
### [IAM users](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).
|
||||
|
||||
@@ -120,13 +120,13 @@ Los usuarios pueden tener **MFA habilitado para iniciar sesión** a través de l
|
||||
|
||||
#### CLI
|
||||
|
||||
- **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).
|
||||
- **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 secretas perdidas).
|
||||
|
||||
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_
|
||||
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 antigua clave de acceso_
|
||||
|
||||
### MFA - Autenticación de Múltiples Factores
|
||||
### MFA - Multi Factor Authentication
|
||||
|
||||
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.
|
||||
@@ -138,11 +138,11 @@ Las políticas con condiciones de MFA se pueden adjuntar a lo siguiente:
|
||||
- La política de confianza de un rol de IAM que puede ser asumido por un usuario
|
||||
|
||||
Si deseas **acceder a través de CLI** a un recurso que **verifica MFA**, necesitas llamar a **`GetSessionToken`**. Eso te dará un token con información sobre MFA.\
|
||||
Ten en cuenta que **las credenciales de `AssumeRole` no contienen esta información**.
|
||||
Ten en cuenta que las credenciales de **`AssumeRole` no contienen esta información**.
|
||||
```bash
|
||||
aws sts get-session-token --serial-number <arn_device> --token-code <code>
|
||||
```
|
||||
Como [**se indica aquí**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html), hay muchos casos diferentes en los que **MFA no se puede usar**.
|
||||
Como [**se indica aquí**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html), hay muchos casos diferentes donde **MFA no se puede usar**.
|
||||
|
||||
### [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>
|
||||
|
||||
@@ -161,7 +161,7 @@ Aquí hay algunas características importantes de los grupos de usuarios:
|
||||
|
||||
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, 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**.
|
||||
Un rol de IAM consiste en **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)
|
||||
|
||||
@@ -181,7 +181,7 @@ Se utilizan para asignar permisos. Hay 2 tipos:
|
||||
- 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** está **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).
|
||||
Si **existe un "Deny" único, anulará el "Allow"**, excepto para 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
|
||||
@@ -210,7 +210,7 @@ Los [campos específicos que se pueden usar para condiciones por servicio están
|
||||
#### Políticas en línea
|
||||
|
||||
Este tipo de políticas son **asignadas directamente** a un usuario, grupo o rol. Por lo tanto, no aparecen en la lista de Políticas ya que cualquier otro puede usarlas.\
|
||||
Las políticas en línea son útiles si deseas **mantener una relación estricta uno a uno entre una política y la identidad** a la que se aplica. Por ejemplo, quieres asegurarte de que los permisos en una política no se asignen inadvertidamente a una identidad diferente de la que están destinados. Cuando usas una política en línea, los permisos en la política no pueden ser adjuntados inadvertidamente a la identidad incorrecta. Además, cuando usas la Consola de Administración de AWS para eliminar esa identidad, las políticas incrustadas en la identidad también se eliminan. Eso se debe a que son parte de la entidad principal.
|
||||
Las políticas en línea son útiles si deseas **mantener una relación estricta uno a uno entre una política y la identidad** a la que se aplica. Por ejemplo, quieres asegurarte de que los permisos en una política no se asignen inadvertidamente a una identidad diferente de la que están destinados. Cuando usas una política en línea, los permisos en la política no pueden ser adjuntados inadvertidamente a la identidad incorrecta. Además, cuando usas la Consola de Administración de AWS para eliminar esa identidad, las políticas incrustadas en la identidad también se eliminan. Eso es porque son parte de la entidad principal.
|
||||
|
||||
#### Políticas de Bucket de Recursos
|
||||
|
||||
@@ -247,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 de confianza 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 confiable 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.
|
||||
|
||||
@@ -303,26 +303,26 @@ La aplicación utiliza AssumeRoleWithWebIdentity para crear credenciales tempora
|
||||
- Puedes **establecer una configuración de política de contraseñas** con opciones como longitud mínima y requisitos de contraseña.
|
||||
- Puedes **descargar "Informe de Credenciales"** con información sobre las credenciales actuales (como tiempo de creación del usuario, si la contraseña está habilitada...). Puedes generar un informe de credenciales tan a menudo como una vez cada **cuatro horas**.
|
||||
|
||||
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**.
|
||||
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 de tu fuerza laboral y sistemas para **asegurar permisos de menor privilegio**.
|
||||
|
||||
### 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 de IAM** de las claves dependiendo de su naturaleza:
|
||||
|
||||
| Código de Identificador | Descripción |
|
||||
| ---- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| ABIA | [Token portador del servicio AWS STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_bearer.html) |
|
||||
| Código de Identificador | Descripción |
|
||||
| --------------- | ----------------------------------------------------------------------------------------------------------- |
|
||||
| ABIA | [Token portador del servicio AWS STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_bearer.html) |
|
||||
|
||||
| ACCA | Credencial específica del contexto |
|
||||
| AGPA | Grupo de usuarios |
|
||||
| AIDA | Usuario IAM |
|
||||
| AIPA | Perfil de instancia de Amazon EC2 |
|
||||
| AKIA | Clave de acceso |
|
||||
| ANPA | Política administrada |
|
||||
| ANVA | Versión en una política administrada |
|
||||
| APKA | Clave pública |
|
||||
| AROA | Rol |
|
||||
| ASCA | Certificado |
|
||||
| ACCA | Credencial específica del contexto |
|
||||
| AGPA | Grupo de usuarios |
|
||||
| AIDA | Usuario IAM |
|
||||
| AIPA | Perfil de instancia de Amazon EC2 |
|
||||
| AKIA | Clave de acceso |
|
||||
| ANPA | Política administrada |
|
||||
| ANVA | Versión en una política administrada |
|
||||
| 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) 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
|
||||
@@ -371,7 +371,7 @@ Con este archivo de configuración, puedes usar aws cli así:
|
||||
```
|
||||
aws --profile acc2 ...
|
||||
```
|
||||
Si estás buscando algo **similar** a esto pero para el **navegador**, puedes revisar la **extensión** [**AWS Extend Switch Roles**](https://chrome.google.com/webstore/detail/aws-extend-switch-roles/jpmkfafbacpgapdghgdpembnojdlgkdl?hl=en).
|
||||
Si estás buscando algo **similar** a esto pero para el **navegador**, puedes consultar la **extensión** [**AWS Extend Switch Roles**](https://chrome.google.com/webstore/detail/aws-extend-switch-roles/jpmkfafbacpgapdghgdpembnojdlgkdl?hl=en).
|
||||
|
||||
## Referencias
|
||||
|
||||
|
||||
Reference in New Issue
Block a user