

# Definición de permisos de funciones de Lambda con un rol de ejecución
<a name="lambda-intro-execution-role"></a>

Un rol de ejecución de una función de Lambda es un rol de (IAM) AWS Identity and Access Management que concede a la función permiso para acceder a los Servicios de AWS y los recursos. Por ejemplo, puede crear un rol de ejecución que tenga permiso para enviar registros a Amazon CloudWatch y cargar datos de seguimiento en AWS X-Ray. Esta página proporciona información sobre cómo crear, ver y administrar el rol de ejecución de una función de Lambda.

Lambda asume automáticamente su rol de ejecución cuando invoca su función. Debería evitar llamar de forma manual a `sts:AssumeRole` para que asuma el rol de ejecución en el código de función. Si su caso de uso requiere que el rol se asuma por sí mismo, debe incluir al rol como una entidad principal de confianza en la política de confianza de su rol. Para obtener más información acerca de cómo modificar una política de confianza de roles, consulte [Modificación de una política de confianza de rol (consola)](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-console.html#roles-managingrole_edit-trust-policy) en la Guía del usuario de IAM.

Para que Lambda asuma correctamente su rol de ejecución, la [política de confianza](#permissions-executionrole-api) del rol debe especificar la entidad principal de servicio de Lambda (`lambda.amazonaws.com`) como un servicio de confianza.

**Topics**
+ [

## Creación de un rol de ejecución en la consola de IAM
](#permissions-executionrole-console)
+ [

## Creación y administración de roles con la AWS CLI
](#permissions-executionrole-api)
+ [

## Otorgue privilegios de acceso mínimos a su rol de ejecución de Lambda
](#permissions-executionrole-least-privilege)
+ [

# Visualización y actualización de permisos en el rol de ejecución
](permissions-executionrole-update.md)
+ [

# Trabajo con políticas administradas de AWS en el rol de ejecución
](permissions-managed-policies.md)
+ [

# Uso del ARN de la función de origen para controlar el comportamiento de acceso a la función
](permissions-source-function-arn.md)

## Creación de un rol de ejecución en la consola de IAM
<a name="permissions-executionrole-console"></a>

De forma predeterminada, Lambda crea un rol de ejecución con permisos mínimos al [crear una función en la consola de Lambda](getting-started.md#getting-started-create-function). En concreto, este rol de ejecución incluye la [política administrada `AWSLambdaBasicExecutionRole`](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSLambdaBasicExecutionRole.html), que otorga a su función permisos básicos para registrar eventos de registro en Registros de Amazon CloudWatch. Puede seleccionar **Crear rol predeterminado** en la sección **Permisos**.

Puede elegir un rol existente seleccionando **Usar otro rol** en la sección **Permisos**. Si su función de Lambda necesita permisos adicionales para realizar tareas como actualizar entradas en una base de datos Amazon DynamoDB en respuesta a eventos, puede crear un rol de ejecución personalizado con los permisos necesarios. Para hacerlo, seleccione **Usar otro rol** en la sección **Permisos** y se abrirá un panel donde puede personalizar los permisos.

**Para configurar un rol de ejecución desde la consola**

1. Introduzca un **nombre de rol** en la sección Detalles del rol.

1. En la sección **Política**, seleccione **Usar política existente**.

1. Seleccione las políticas administradas de AWS que desee adjuntar a su rol. Por ejemplo, si la función necesita acceder a DynamoDB, seleccione la política administrada **AWSLambdaDynamoDBExecutionRole**.

1. Elija **Crear rol**.

Como alternativa, cuando [crea una función en la consola de Lambda](https://docs.aws.amazon.com/lambda/latest/dg/getting-started.html#getting-started-create-function), puede adjuntar a la función cualquier rol de ejecución que haya creado previamente. Si desea adjuntar un nuevo rol de ejecución a una función existente, siga los pasos que se indican en [Actualizar el rol de ejecución de una función](permissions-executionrole-update.md).

## Creación y administración de roles con la AWS CLI
<a name="permissions-executionrole-api"></a>

Para crear un rol de ejecución con AWS Command Line Interface (AWS CLI), utilice el comando **create-role**. Al usar este comando, puede especificar las políticas de confianza en línea. La política de confianza de un rol otorga a la entidad principal especificada permiso para asumir el rol. En el siguiente ejemplo, usted concede a la entidad principal del servicio Lambda el permiso para que asuma su rol. Tenga en cuenta que los requisitos para estar por fuera de las comillas en la cadena JSON pueden variar según su shell.

```
aws iam create-role \
  --role-name lambda-ex \
  --assume-role-policy-document '{"Version": "2012-10-17",		 	 	 "Statement": [{ "Effect": "Allow", "Principal": {"Service": "lambda.amazonaws.com"}, "Action": "sts:AssumeRole"}]}'
```

También puede definir la política de confianza para el rol con un archivo JSON aparte. En el siguiente ejemplo, `trust-policy.json` es un archivo que se encuentra en el directorio actual.

**Example trust-policy.json**    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "lambda.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

```
aws iam create-role \
  --role-name lambda-ex \
  --assume-role-policy-document file://trust-policy.json
```

Para agregar permisos al rol, use el comando **attach-policy-to-role**. Los comandos siguientes agregan la política administrada `AWSLambdaBasicExecutionRole` al rol de ejecución `lambda-ex`.

```
aws iam attach-role-policy --role-name lambda-ex --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
```

Después de crear su rol de ejecución, adjúntelo a su función. Cuando [crea una función en la consola de Lambda](getting-started.md#getting-started-create-function), puede adjuntar a la función cualquier rol de ejecución que haya creado previamente. Si desea adjuntar un nuevo rol de ejecución a una función existente, siga los pasos que se indican en [Actualizar el rol de ejecución de una función](permissions-executionrole-update.md#update-execution-role).

## Otorgue privilegios de acceso mínimos a su rol de ejecución de Lambda
<a name="permissions-executionrole-least-privilege"></a>

Cuando crea por primera vez un rol de IAM para su función de Lambda durante la fase de desarrollo, a veces puede conceder permisos más allá de lo necesario. Antes de publicar la función en el entorno de producción, la práctica recomendada consiste en ajustar la política para incluir solo los permisos necesarios. Para obtener más información, consulte [Aplicar permisos de privilegio mínimo](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) en la *Guía del usuario de IAM*.

Utilice IAM Access Analyzer para ayudar a identificar los permisos necesarios para la política de rol de ejecución de IAM. IAM Access Analyzer revisa sus registros de AWS CloudTrail en el intervalo de fechas especificado y genera una plantilla de política con solo los permisos que la función utilizó durante ese tiempo. Puede utilizar la plantilla para crear una política administrada con permisos detallados y, a continuación, adjuntarla al rol de IAM. De esta forma, solo concede los permisos que el rol necesita para interactuar con los recursos de AWS para su caso de uso específico.

Para obtener más información, consulte [Generar políticas basadas en la actividad de acceso](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_generate-policy.html) en la *Guía del usuario de IAM*.

# Visualización y actualización de permisos en el rol de ejecución
<a name="permissions-executionrole-update"></a>

En este tema se explica cómo ver y actualizar el [rol de ejecución de la función](lambda-intro-execution-role.md).

**Topics**
+ [

## Ver el rol de ejecución de una función
](#view-execution-role)
+ [

## Actualizar el rol de ejecución de una función
](#update-execution-role)

## Ver el rol de ejecución de una función
<a name="view-execution-role"></a>

Para ver el rol de ejecución de una función, utilice la consola de Lambda.

**Cómo ver el rol de ejecución de una función (consola)**

1. Abra la página de [Funciones](https://console.aws.amazon.com/lambda/home#/functions) en la consola de Lambda.

1. Elija el nombre de una función.

1. Elija **Configuration** (Configuración) y, a continuación, seleccione **Permissions** (Permisos).

1. En **Rol de ejecución**, puede ver el rol que se utiliza actualmente como rol de ejecución de la función. Para mayor comodidad, puede ver todos los recursos y acciones a los que puede acceder la función en la sección de **resumen de recursos**. También puede elegir un servicio de la lista del menú desplegable para consultar los permisos relacionados con ese servicio.

## Actualizar el rol de ejecución de una función
<a name="update-execution-role"></a>

Puede añadir o eliminar permisos del rol de ejecución de una función en cualquier momento, o configurar la función para que utilice otro rol. Si su función necesita acceder a otros servicios o recursos, debe agregar los permisos necesarios al rol de ejecución.

Cuando agregue permisos a su función, actualice también su código o configuración. Esto obliga a las instancias en ejecución de su función, cuyas credenciales han expirado, a detenerse y ser sustituidas.

Para actualizar el rol de ejecución de una función, puede utilizar la consola de Lambda.

**Para configurar el rol de ejecución de la función (consola)**

1. Abra la página de [Funciones](https://console.aws.amazon.com/lambda/home#/functions) en la consola de Lambda.

1. Elija el nombre de una función.

1. Elija **Configuration** (Configuración) y, a continuación, seleccione **Permissions** (Permisos).

1. En **Rol de ejecución**, elija **Editar**.

1. Si desea actualizar su función para usar un rol diferente como rol de ejecución, elija el nuevo rol en el menú desplegable bajo el rol **existente**.
**nota**  
Si desea actualizar los permisos de un rol de ejecución existente, solo puede hacerlo en la consola de AWS Identity and Access Management (IAM).

   Si desea crear un nuevo rol para usarlo como rol de ejecución, elija **Crear un nuevo rol a partir de plantillas de AWS políticas** en el **rol de ejecución**. A continuación, introduzca un nombre para el rol nuevo en **Nombre del rol** y especifique las políticas que desee adjuntar al rol nuevo en **Plantillas de políticas**.

1. Seleccione **Guardar**.

# Trabajo con políticas administradas de AWS en el rol de ejecución
<a name="permissions-managed-policies"></a>

Las siguientes políticas administradas de AWS proporcionan los permisos necesarios para utilizar las características de Lambda.


| Cambio | Descripción | Fecha | 
| --- | --- | --- | 
|  **[AWSLambdaMSKExecutionRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSLambdaMSKExecutionRole)**: Lambda ha agregado el permiso [kafka:DescribeClusterV2](https://docs.aws.amazon.com/MSK/2.0/APIReference/v2-clusters-clusterarn.html#v2-clusters-clusterarnget) a esta política.  |  `AWSLambdaMSKExecutionRole` concede permisos para leer y acceder a registros de un clúster de Amazon Managed Streaming for Apache Kafka (Amazon MSK), administrar interfaces de red elásticas (ENI) y escribir en CloudWatch Logs.  |  17 de junio de 2022  | 
|  **[ AWSLambdaBasicExecutionRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole)**: Lambda comenzó a realizar un seguimiento de los cambios de esta política.  |  `AWSLambdaBasicExecutionRole` concede permisos para cargar registros en CloudWatch.  |  14 de febrero de 2022  | 
|  **[ AWSLambdaDynamoDBExecutionRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSLambdaDynamoDBExecutionRole)**: Lambda comenzó a realizar un seguimiento de los cambios de esta política.  |  `AWSLambdaDynamoDBExecutionRole` concede permisos para leer registros de una transmisión de Amazon DynamoDB y escribir en CloudWatch Logs.  |  14 de febrero de 2022  | 
|  **[ AWSLambdaKinesisExecutionRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSLambdaKinesisExecutionRole)**: Lambda comenzó a realizar un seguimiento de los cambios de esta política.  |  `AWSLambdaKinesisExecutionRole` concede permisos para leer registros de una transmisión de datos de Amazon Kinesis y escribir en CloudWatch Logs.  |  14 de febrero de 2022  | 
|  **[ AWSLambdaMSKExecutionRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSLambdaMSKExecutionRole)**: Lambda comenzó a realizar un seguimiento de los cambios de esta política.  |  `AWSLambdaMSKExecutionRole` concede permisos para leer y acceder a registros de un clúster de Amazon Managed Streaming for Apache Kafka (Amazon MSK), administrar interfaces de red elásticas (ENI) y escribir en CloudWatch Logs.  |  14 de febrero de 2022  | 
|  **[ AWSLambdaSQSQueueExecutionRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSLambdaSQSQueueExecutionRole)**: Lambda comenzó a realizar un seguimiento de los cambios de esta política.  |  `AWSLambdaSQSQueueExecutionRole` concede permisos para leer un mensaje de una cola de Amazon Simple Queue Service (Amazon SQS) y escribir en CloudWatch Logs.  |  14 de febrero de 2022  | 
|  **[ AWSLambdaVPCAccessExecutionRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole)**: Lambda comenzó a realizar un seguimiento de los cambios de esta política.  |  `AWSLambdaVPCAccessExecutionRole` concede permisos para administrar ENI dentro de una Amazon VPC y escribir en CloudWatch Logs.  |  14 de febrero de 2022  | 
|  **[AWSXRayDaemonWriteAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSXRayDaemonWriteAccess)**: Lambda comenzó a realizar un seguimiento de los cambios de esta política.  |  `AWSXRayDaemonWriteAccess` concede permisos para cargar datos de seguimiento en X-Ray.  |  14 de febrero de 2022  | 
|  **[CloudWatchLambdaInsightsExecutionRolePolicy](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/CloudWatchLambdaInsightsExecutionRolePolicy)**: Lambda comenzó a realizar un seguimiento de los cambios de esta política.  |  `CloudWatchLambdaInsightsExecutionRolePolicy` concede permiso para escribir métricas de tiempo de ejecución en CloudWatch Lambda Insights.  |  14 de febrero de 2022  | 
|  **[AmazonS3ObjectLambdaExecutionRolePolicy](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonS3ObjectLambdaExecutionRolePolicy)**: Lambda comenzó a realizar un seguimiento de los cambios de esta política.  |  `AmazonS3ObjectLambdaExecutionRolePolicy` concede permisos para interactuar con el objeto Lambda de Amazon Simple Storage Service (Amazon S3) y escribir en CloudWatch Logs.  |  14 de febrero de 2022  | 

Para algunas características, la consola de Lambda intenta agregar permisos que faltan a su rol de ejecución en una política administrada por el cliente. Estas políticas pueden llegar a ser numerosas. Para evitar la creación de políticas adicionales, agregue las políticas administradas por AWS a su rol de ejecución antes de habilitar las características.

Cuando se utiliza un [mapeo de fuente de eventos](invocation-eventsourcemapping.md) para invocar la función, Lambda utiliza el rol de ejecución para leer los datos de los eventos. Por ejemplo, un mapeo de fuente de eventos para Kinesis lee los eventos de un flujo de datos y se los envía a la función por lotes. 

Cuando un servicio asume un rol en su cuenta, puede incluir las claves de contexto de condición global `aws:SourceAccount` y `aws:SourceArn` en la política de confianza de rol para limitar el acceso al rol a solo las solicitudes generadas por los recursos esperados. Para obtener más información, consulte [Prevención del suplente confuso entre servicios para AWS Security Token Service](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html#cross-service-confused-deputy-prevention).

Además de las políticas administradas por AWS, la consola de Lambda proporciona plantillas para la creación de una política personalizada con permisos para casos de uso adicionales. Cuando crea una función en la consola de Lambda, puede elegir crear un nuevo rol de ejecución con permisos a partir de una o más plantillas. Estas plantillas también se aplican automáticamente cuando se crea una función a partir de un esquema o cuando se configuran opciones que requieren acceso a otros servicios. Existen plantillas de ejemplo en el [repositorio de GitHub](https://github.com/awsdocs/aws-lambda-developer-guide/tree/master/iam-policies) de esta guía.

# Uso del ARN de la función de origen para controlar el comportamiento de acceso a la función
<a name="permissions-source-function-arn"></a>

Es común que el código de la función de Lambda realice solicitudes de la API a otros Servicios de AWS. Para realizar estas solicitudes, Lambda genera un conjunto efímero de credenciales al asumir el rol de ejecución de la función. Estas credenciales están disponibles como variables de entorno durante la invocación de la función. Cuando trabaja con el AWS SDK, no es necesario proporcionar las credenciales de SDK directamente en el código. De forma predeterminada, la cadena de proveedores de credenciales comprueba secuencialmente cada lugar en el que puede configurar las credenciales y elige el primero disponible, normalmente las variables de entorno (`AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, y `AWS_SESSION_TOKEN`).

Lambda inyecta el ARN de la función de origen en el contexto de credenciales solo si la solicitud es una solicitud de la API de AWS que proviene de su entorno de ejecución. Lambda también inyecta el ARN de la función de origen para las siguientes solicitudes a la API de AWS que Lambda realiza fuera del entorno de ejecución en su nombre:


| Servicio | Action | Motivo | 
| --- | --- | --- | 
| Registros de CloudWatch | CreateLogGroup, CreateLogStream, PutLogEvents |  Para almacenar los registros en un grupo de registro de los registros de CloudWatch  | 
| X-Ray | PutTraceSegments |  Para enviar datos de seguimiento a X-Ray  | 
| Amazon EFS | ClientMount |  Para conectar la función a un sistema de archivos Amazon Elastic File System (Amazon EFS)  | 

Las llamadas a la API de AWS que realiza fuera del entorno de ejecución en su nombre con el mismo rol de ejecución no contienen el ARN de la función de origen. Entre los ejemplos de llamadas a la API fuera del entorno de ejecución se incluyen los siguientes:
+ Llamadas a AWS Key Management Service (AWS KMS) para cifrar y descifrar de forma automática las variables de entorno.
+ Llamadas a Amazon Elastic Compute Cloud (Amazon EC2) para crear interfaces de red elásticas (ENI) para una función con VPC habilitada.
+ Llama a los Servicios de AWS, como Amazon Simple Queue Service (Amazon SQS), para leer desde un origen de eventos que está configurada como una [asignación de orígenes de eventos](invocation-eventsourcemapping.md).

Con el ARN de la función de origen en el contexto de credenciales, puede verificar si una llamada al recurso proviene del código de una función de Lambda específica. Para comprobarlo, utilice la clave de condición `lambda:SourceFunctionArn` en una política con base en identidad de IAM o [política de control de servicio (SCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html).

**nota**  
No puede utilizar la clave de condición `lambda:SourceFunctionArn` en las políticas basadas en recursos.

Con esta clave de condición en las políticas basadas en la identidad o SCP, puede implementar controles de seguridad para las acciones de la API que el código de la función realiza en otros Servicios de AWS. Tiene algunas aplicaciones de seguridad clave, como ayudarlo a identificar el origen de una fuga de credenciales.

**nota**  
La clave de condición `lambda:SourceFunctionArn` es diferente de las claves de condición `lambda:FunctionArn` y `aws:SourceArn`. La clave de condición `lambda:FunctionArn` solo se aplica a [asignaciones de orígenes de eventos](invocation-eventsourcemapping.md) y ayuda a definir qué funciones puede invocar el origen de eventos. La clave de condición `aws:SourceArn` se aplica solo a las políticas en las que la función de Lambda es el recurso de destino y ayuda a definir qué otros Servicios de AWS y recursos pueden invocar esa función. La clave de condición `lambda:SourceFunctionArn` se puede aplicar a cualquier política basada en identidad o SCP para definir las funciones Lambda específicas que tienen permisos para hacer llamadas de la API de AWS a otros recursos.

Para utilizar `lambda:SourceFunctionArn` en la política, inclúyala como condición en cualquiera de los [operadores de condición ARN](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_ARN). El valor de la clave debe ser un ARN válido.

Por ejemplo, suponga que el código de función de Lambda hace una llamada `s3:PutObject` que está dirigida a un bucket de Amazon S3 específico. Es posible que desee permitir que solo una función de Lambda específica tenga acceso a `s3:PutObject` de ese bucket. En este caso, el rol de ejecución de la función debe tener una política asociada similar a la siguiente:

**Example política que otorga acceso a una función de Lambda específica a un recurso de Amazon S3**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ExampleSourceFunctionArn",
            "Effect": "Allow",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::lambda_bucket/*",
            "Condition": {
                "ArnEquals": {
                    "lambda:SourceFunctionArn": "arn:aws:lambda:us-east-1:123456789012:function:source_lambda"
                }
            }
        }
    ]
}
```

Esta política solo permite el acceso a `s3:PutObject` si el origen es la función de Lambda con el ARN `arn:aws:lambda:us-east-1:123456789012:function:source_lambda`. Esta política no permite el acceso a `s3:PutObject` de ninguna otra identidad de llamada. Esto se aplica incluso aunque una función o entidad diferente haga una llamada `s3:PutObject` con el mismo rol de ejecución.

**nota**  
La clave de condición `lambda:SourceFunctionARN` no admite versiones de funciones de Lambda ni alias de funciones. Si usa el ARN para una versión o alias de función en particular, la función no tendrá permiso para realizar la acción que especifique. Asegúrese de utilizar el ARN incompleto para la función sin un sufijo de versión o alias.

También se puede usar `lambda:SourceFunctionArn` en SCP. Por ejemplo, suponga que desea restringir el acceso al bucket a un solo código de la función de Lambda o a llamadas de una instancia específica de Amazon Virtual Private Cloud (VPC). La siguiente SCP ilustra este caso.

**Example política que deniega el acceso a Amazon S3 en condiciones específicas**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "s3:*"
            ],
            "Resource": "arn:aws:s3:::lambda_bucket/*",
            "Effect": "Deny",
            "Condition": {
                "StringNotEqualsIfExists": {
                    "aws:SourceVpc": [
                        "vpc-12345678"
                    ]
                }
            }
        },
        {
            "Action": [
                "s3:*"
            ],
            "Resource": "arn:aws:s3:::lambda_bucket/*",
            "Effect": "Deny",
            "Condition": {
                "ArnNotEqualsIfExists": {
                    "lambda:SourceFunctionArn": "arn:aws:lambda:us-east-1:123456789012:function:source_lambda"
                }
            }
        }
    ]
}
```

Esta política deniega todas las acciones de S3 a menos que provengan de una función de Lambda específica con el ARN `arn:aws:lambda:*:123456789012:function:source_lambda` o de la VPC especificada. El operador `StringNotEqualsIfExists` indica a IAM que procese esta condición solo si la clave `aws:SourceVpc` está presente en la solicitud. Del mismo modo, IAM considera el operador `ArnNotEqualsIfExists` solo si `lambda:SourceFunctionArn` está presente.