mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-27 05:03:31 -08:00
Translated ['src/pentesting-cloud/aws-security/aws-basic-information/REA
This commit is contained in:
@@ -33,7 +33,7 @@ aws organizations create-account --account-name testingaccount --email testingac
|
||||
```
|
||||
### **Unidades de Organización**
|
||||
|
||||
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.
|
||||
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.
|
||||
```bash
|
||||
# You can get the root id from aws organizations list-roots
|
||||
aws organizations create-organizational-unit --parent-id r-lalala --name TestOU
|
||||
@@ -67,14 +67,14 @@ Encuentra **ejemplos de JSON** en [https://docs.aws.amazon.com/organizations/lat
|
||||
arn:partition:service:region:account-id:resource-type/resource-id
|
||||
arn:aws:elasticbeanstalk:us-west-1:123456789098:environment/App/Env
|
||||
```
|
||||
Nota que hay 4 particiones en AWS pero solo 3 formas de llamarlas:
|
||||
Note que hay 4 particiones en AWS pero solo 3 formas de llamarlas:
|
||||
|
||||
- AWS Standard: `aws`
|
||||
- AWS China: `aws-cn`
|
||||
- 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.
|
||||
|
||||
@@ -84,15 +84,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.
|
||||
|
||||
### [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 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 utilizaste para crear la cuenta**.
|
||||
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**.
|
||||
|
||||
Nota que un nuevo **usuario admin** tendrá **menos permisos que el usuario raíz**.
|
||||
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.
|
||||
|
||||
### [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).
|
||||
|
||||
@@ -102,13 +102,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 secreto perdidos).
|
||||
|
||||
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 - 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.
|
||||
@@ -120,7 +120,7 @@ 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.\
|
||||
Nota 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>
|
||||
```
|
||||
@@ -128,7 +128,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](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) de IAM 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 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**.
|
||||
|
||||
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,7 +137,7 @@ 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 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).
|
||||
- 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).
|
||||
|
||||
### [Roles de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) <a href="#id_iam-roles" id="id_iam-roles"></a>
|
||||
|
||||
@@ -151,7 +151,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 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.
|
||||
**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.
|
||||
|
||||
### Políticas
|
||||
|
||||
@@ -160,9 +160,9 @@ Las **credenciales temporales se utilizan principalmente con roles de IAM**, per
|
||||
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), utilizando el generador de políticas (una vista GUI que te ayuda a otorgar y denegar permisos) o escribiendo la tuya propia.
|
||||
- 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.\
|
||||
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).
|
||||
```javascript
|
||||
{
|
||||
@@ -191,7 +191,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 ningún otro puede usarlas.\
|
||||
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.
|
||||
|
||||
#### Políticas de Bucket de Recursos
|
||||
@@ -226,8 +226,8 @@ Por lo tanto, si en algún momento te enfrentas al error "... porque ninguna pol
|
||||
|
||||
### Federación de Identidad
|
||||
|
||||
La federación de identidad **permite a los usuarios de proveedores de identidad que son externos** a AWS acceder a 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á entonces a los usuarios dentro de él acceder a AWS.
|
||||
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.
|
||||
|
||||
@@ -259,7 +259,7 @@ 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**.
|
||||
|
||||
### Confianzas y Roles entre Cuentas
|
||||
### Confianza 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.
|
||||
@@ -287,9 +287,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 de IAM
|
||||
### Prefijos de ID 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:
|
||||
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:
|
||||
|
||||
| Código de Identificador | Descripción |
|
||||
| ---- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
@@ -305,7 +305,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) utilizan 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) usan 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 +320,12 @@ Los siguientes privilegios otorgan varios accesos de lectura de metadatos:
|
||||
- `directconnect:DescribeConnections`
|
||||
- `dynamodb:ListTables`
|
||||
|
||||
## Varios
|
||||
## Miscelánea
|
||||
|
||||
### 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 utilizará 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 usará el llamado **`[default]`** en ese archivo.\
|
||||
Ejemplo de archivo de credenciales con más de 1 perfil:
|
||||
```
|
||||
[default]
|
||||
|
||||
Reference in New Issue
Block a user