AddPermission - AWS Lambda

AddPermission

Le concede permiso a un Servicio de AWS, una Cuenta de AWS o una organización de AWS para utilizar una función. Puede aplicar la política en el nivel de función o especificar un calificador para restringir el acceso a una única versión o alias. Si utiliza un calificador, el invocador debe utilizar el nombre de recurso de Amazon (ARN) completo de esa versión o alias para invocar la función. Nota: Lambda no admite la adición de políticas a la versión $LATEST.

Para conceder permiso a otra cuenta, especifique el ID de la cuenta como Principal. Para conceder permiso a una organización definida en AWS Organizations, especifique el ID de la organización como PrincipalOrgID. Para los Servicios de AWS, la entidad principal es un identificador de dominio definido por el servicio, como s3.amazonaws.com o sns.amazonaws.com. Para los Servicios de AWS, también puede especificar el ARN del recurso asociado como el SourceArn. Si concede permiso a la entidad principal del servicio sin especificar el origen, es posible que otras cuentas puedan configurar recursos en su cuenta para invocar a su función de Lambda.

Esta operación agrega una instrucción a una política de permisos basada en recursos para la función. Para obtener más información sobre las políticas para funciones, consulte Uso de políticas basadas en recursos para Lambda.

Sintaxis de la solicitud

POST /2015-03-31/functions/FunctionName/policy?Qualifier=Qualifier HTTP/1.1 Content-type: application/json { "Action": "string", "EventSourceToken": "string", "FunctionUrlAuthType": "string", "Principal": "string", "PrincipalOrgID": "string", "RevisionId": "string", "SourceAccount": "string", "SourceArn": "string", "StatementId": "string" }

Parámetros de solicitud del URI

La solicitud utiliza los siguientes parámetros URI.

FunctionName

El nombre de función de Lambda, la versión o el alias.

Formatos de nombre
  • Nombre de la función: my-function (solo nombre), my-function:v1 (con alias).

  • ARN de la función: arn:aws:lambda:us-west-2:123456789012:function:my-function.

  • ARN parcial: 123456789012:function:my-function.

Puede incluir un número de versión o alias en cualquiera de los formatos. La limitación de longitud se aplica únicamente al ARN completo. Si solo especifica el nombre de la función, se limita a 64 caracteres de longitud.

Limitaciones de longitud: longitud mínima de 1. La longitud máxima es de 140 caracteres.

Patrón: (arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}(-gov)?-[a-z]+-\d{1}:)?(\d{12}:)?(function:)?([a-zA-Z0-9-_]+)(:(\$LATEST|[a-zA-Z0-9-_]+))?

Obligatorio: sí

Qualifier

Especifique una versión o alias para agregar permisos a una versión publicada de la función.

Limitaciones de longitud: longitud mínima de 1. La longitud máxima es de 128.

Patrón: (|[a-zA-Z0-9$_-]+)

Cuerpo de la solicitud

La solicitud acepta los siguientes datos en formato JSON.

Action

La acción que la entidad principal puede utilizar en la función. Por ejemplo, lambda:InvokeFunction o lambda:GetFunction.

Tipo: String

Patrón: (lambda:[*]|lambda:[a-zA-Z]+|[*])

Obligatorio: sí

EventSourceToken

Un token que el invocador debe proveer para funciones de Alexa Smart Home.

Tipo: cadena

Limitaciones de longitud: longitud mínima de 0. La longitud máxima es de 256 caracteres.

Patrón: [a-zA-Z0-9._\-]+

Obligatorio: no

FunctionUrlAuthType

El tipo de autenticación que utiliza la URL de función. Establézcalo en AWS_IAM si desea restringir el acceso solo a los usuarios autenticados. Establézcalo en NONE si desea omitir la autenticación de IAM para crear un punto de conexión público. Para obtener más información, consulte Modelo de seguridad y autenticación para URL de funciones de Lambda.

Tipo: cadena

Valores válidos: NONE | AWS_IAM

Obligatorio: no

Principal

El Servicio de AWS o la Cuenta de AWS que invoca la función. Si especifica un servicio, utilice el SourceArn o el SourceAccount para limitar quién puede invocar la función a través de dicho servicio.

Tipo: String

Patrón: [^\s]+

Obligatorio: sí

PrincipalOrgID

El identificador de su organización en AWS Organizations. Úselo para conceder permisos a todas las Cuentas de AWS de esta organización.

Tipo: cadena

Limitaciones de longitud: longitud mínima de 12. La longitud máxima es de 34.

Patrón: ^o-[a-z0-9]{10,32}$

Obligatorio: no

RevisionId

Actualice la política solo si el ID de revisión coincide con el ID especificado. Utilice esta opción para evitar la modificación de una política que haya cambiado desde que lo leyó por última vez.

Tipo: cadena

Obligatorio: no

SourceAccount

Para Servicio de AWS, el ID de la Cuenta de AWS propietaria del recurso. Úselo con SourceArn para garantizar que el recurso pertenece a la cuenta especificada. Es posible que su propietario elimine un bucket de Amazon S3 y lo vuelva a crear otra cuenta.

Tipo: cadena

Limitaciones de longitud: longitud máxima de 12 caracteres.

Patrón: \d{12}

Obligatorio: no

SourceArn

Para los Servicios de AWS, el ARN del recurso de AWS que invoca la función. Por ejemplo, un bucket de Amazon S3 o un tema de Amazon SNS.

Tenga en cuenta que Lambda configura la comparación con el operador de StringLike.

Tipo: String

Patrón: arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\-])+:([a-z]{2}(-gov)?-[a-z]+-\d{1})?:(\d{12})?:(.*)

Obligatorio: no

StatementId

Un identificador de instrucción que diferencia la instrucción de otras en la misma política.

Tipo: cadena

Limitaciones de longitud: longitud mínima de 1. La longitud máxima es de 100 caracteres.

Patrón: ([a-zA-Z0-9-_]+)

Obligatorio: sí

Sintaxis de la respuesta

HTTP/1.1 201 Content-type: application/json { "Statement": "string" }

Elementos de respuesta

Si la acción se realiza correctamente, el servicio devuelve una respuesta HTTP 201.

El servicio devuelve los datos siguientes en formato JSON.

Statement

La instrucción de permiso que se agrega a la política de la función.

Tipo: cadena

Errores

Para obtener información acerca de los errores comunes a todas las acciones, consulte Errores comunes.

InvalidParameterValueException

Uno de los parámetros de la solicitud no es válido.

Código de estado HTTP: 400

PolicyLengthExceededException

La política de permisos para el recurso es demasiado grande. Para obtener más información, consulte Cuotas de Lambda.

Código de estado HTTP: 400

PreconditionFailedException

El RevisionId proporcionado no coincide con el RevisionId más reciente para la función o alias de Lambda. Llame a la operación de la API GetFunction o GetAlias para recuperar la última versión de RevisionId para su recurso.

Código de estado HTTP: 412

ResourceConflictException

El recurso ya existe o hay otra operación en marcha.

Código de estado HTTP: 409

ResourceNotFoundException

El recurso especificado en la solicitud no existe.

Código de estado HTTP: 404

ServiceException

El servicio AWS Lambda detectó un error interno.

Código de estado HTTP: 500

TooManyRequestsException

Se ha superado el límite de rendimiento de la solicitud. Para obtener más información, consulte Cuotas de Lambda.

Código de estado HTTP: 429

Véase también

Para obtener más información sobre el uso de esta API en un SDK de AWS de un lenguaje específico, consulte: