AddPermission
Le concede permiso a un servicio, cuenta u 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 Lambda.
Esta acción agrega una instrucción a una política de permisos basada en recursos para la función. Para obtener más información acerca de las políticas de funciones, consulte Políticas de funciones 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 Lambda, la versión o el alias.
Formatos de nombre
-
Nombre de función:
my-function
(solo nombre),my-function:v1
(con alias). -
ARN de 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 caracteres.
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
-
Para funciones de Alexa Smart Home, el invocador debe suministrar un token.
Tipo: String
Limitaciones de longitud: longitud mínima de 0. La longitud máxima es de 256 caracteres.
Patrón:
[a-zA-Z0-9._\-]+
Requerido: No
- FunctionUrlAuthType
-
El tipo de autenticación que utiliza la URL de función. Configúrelo en
AWS_IAM
si desea restringir el acceso solo a los usuarios deIAM
autenticados. Configúrelo 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: String
Valores válidos:
NONE | AWS_IAM
Requerido: No
- Principal
-
La cuenta o servicio 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: String
Limitaciones de longitud: longitud mínima de 12. La longitud máxima es de 34.
Patrón:
^o-[a-z0-9]{10,32}$
Requerido: 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: String
Requerido: No
- SourceAccount
-
Para Amazon S3, el ID de la cuenta propietaria del recurso. También puede utilizarlo 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: String
Limitaciones de longitud: longitud máxima de 12 caracteres.
Patrón:
\d{12}
Requerido: 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})?:(.*)
Requerido: No
- StatementId
-
Un identificador de instrucción que diferencia la instrucción de otras en la misma política.
Tipo: String
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: String
Errores
- 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. Más información
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 API de
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.
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: