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
olambda: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 enNONE
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 elSourceAccount
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
oGetAlias
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: