AddPermission - AWS Lambda

AddPermission

Concede permissão a um AWS service (Serviço da AWS), uma Conta da AWS ou uma organização da AWS para usar uma função. Você pode aplicar a política no nível da função ou especificar um qualificador para restringir o acesso a uma única versão ou alias. Se você usar um qualificador, o chamador deverá usar o nome de recurso da Amazon (ARN) completo da versão ou alias para invocar a função. Observação: o Lambda não oferece suporte à adição de políticas à versão $LATEST.

Para conceder permissão a outra conta, especifique o ID da conta como o Principal. Para conceder permissões a uma organização definida no AWS Organizations, especifique o ID da organização como o PrincipalOrgID. Para os Serviços da AWS, a entidade principal é um identificador em estilo de domínio definido pelo serviço, como s3.amazonaws.com ou sns.amazonaws.com. Para os Serviços da AWS, também é possível especificar o ARN do recurso associado, como o SourceArn. Se você conceder permissão a um principal do serviço sem especificar a origem, outras contas poderão potencialmente configurar recursos em suas contas para invocar sua função do Lambda.

Esta operação adiciona uma instrução a uma política de permissões baseada em recursos para a função. Para obter mais informações sobre as políticas de função, consulte Usar políticas baseadas em recursos para o Lambda.

Sintaxe da Solicitação

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 da Solicitação de URI

A solicitação usa os seguintes parâmetros de URI:

FunctionName

O nome da função, versão ou alias do Lambda.

Formatos de nome
  • Nome da função: my-function (somente nome) ou my-function:v1 (com alias).

  • ARN da função: arn:aws:lambda:us-west-2:123456789012:function:my-function.

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

Você pode anexar um número de versão ou alias a qualquer um dos formatos. A restrição de comprimento se aplica apenas ao ARN completo. Se você especificar apenas o nome da função, ele será limitado a 64 caracteres.

Restrições de tamanho: tamanho mínimo 1. Tamanho máximo de 140.

Padrão: (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-_]+))?

Exigido: Sim

Qualifier

Especifique uma versão ou alias para adicionar permissões a uma versão publicada da função.

Restrições de Tamanho: Tamanho mínimo 1. Comprimento máximo de 128.

Padrão: (|[a-zA-Z0-9$_-]+)

Corpo da Solicitação

A solicitação aceita os dados a seguir no formato JSON.

Action

A ação que o principal pode usar na função. Por exemplo, o lambda:InvokeFunction ou o lambda:GetFunction.

Tipo: string

Padrão: (lambda:[*]|lambda:[a-zA-Z]+|[*])

Exigido: Sim

EventSourceToken

Para as funções do Alexa Smart Home, um token que o invocador deve fornecer.

Tipo: string

Restrições de comprimento: comprimento mínimo 0. Comprimento máximo de 256.

Padrão: [a-zA-Z0-9._\-]+

Obrigatório: não

FunctionUrlAuthType

O tipo de autenticação que o URL de função usa. Defina como AWS_IAM se desejar restringir o acesso apenas a usuários autenticados. Defina como NONE se desejar ignorar a autenticação do IAM para criar um endpoint público. Para obter mais informações, consulte Security and auth model for Lambda function URLs (Modelo de segurança e autenticação para URLs de função do Lambda).

Tipo: string

Valores Válidos: NONE | AWS_IAM

Obrigatório: não

Principal

O AWS service (Serviço da AWS) ou a Conta da AWS que invoca a função. Se você especificar um serviço, use SourceArn ou SourceAccount para limitar quem pode invocar a função por meio desse serviço.

Tipo: string

Padrão: [^\s]+

Exigido: Sim

PrincipalOrgID

O identificador para sua organização no AWS Organizations. Use isso para conceder permissões a todas as Contas da AWS nesta organização.

Tipo: string

Restrições de comprimento: comprimento mínimo de 12. Comprimento máximo de 34.

Padrão: ^o-[a-z0-9]{10,32}$

Obrigatório: não

RevisionId

Atualize a política somente se o ID de revisão corresponder ao ID especificado. Use essa opção para evitar a modificação de uma política que foi alterada desde a última leitura.

Tipo: string

Exigido: não

SourceAccount

Para o AWS service (Serviço da AWS), o ID da Conta da AWS que é proprietária do recurso. Use isso junto com SourceArn para garantir que a conta especificada seja a proprietária do recurso. É possível que um bucket do Amazon S3 seja excluído pelo proprietário e recriado por outra conta.

Tipo: string

Restrições de tamanho: tamanho máximo de 12.

Padrão: \d{12}

Obrigatório: não

SourceArn

Para o Serviços da AWS, o ARN do recurso da AWS que invoca a função. Por exemplo, um bucket do Amazon S3 ou um tópico do Amazon SNS.

Observe que o Lambda configura a comparação usando o operador StringLike.

Tipo: string

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

Obrigatório: não

StatementId

Um identificador de instrução que diferencia a instrução de outras na mesma política.

Tipo: string

Restrições de tamanho: tamanho mínimo 1. Tamanho máximo de 100.

Padrão: ([a-zA-Z0-9-_]+)

Exigido: Sim

Sintaxe da Resposta

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

Elementos de Resposta

Se a ação for bem-sucedida, o serviço retornará uma resposta HTTP 201.

Os dados a seguir são retornados no formato JSON pelo serviço.

Statement

A instrução da permissão que é adicionada à política da função.

Tipo: string

Erros

Para obter informações sobre os erros que todas as ações retornam, consulte Erros comuns.

InvalidParameterValueException

Um dos parâmetros da solicitação não é válido.

Código de Status HTTP: 400

PolicyLengthExceededException

A política de permissões do recurso é muito grande. Para obter mais informações, consulte Cotas do Lambda.

Código de Status HTTP: 400

PreconditionFailedException

O RevisionId fornecido não corresponde ao RevisionId mais recente da função ou do alias do Lambda. Chame a operação de API GetFunction ou GetAlias para recuperar o RevisionId mais recente para o recurso.

Código de status HTTP: 412

ResourceConflictException

O recurso já existe ou outra operação está em andamento.

Código de status HTTP: 409

ResourceNotFoundException

O recurso especificado na solicitação não existe.

Código de Status HTTP: 404

ServiceException

O serviço AWS Lambda encontrou um erro interno.

Código de Status HTTP: 500

TooManyRequestsException

O limite de throughput da solicitação foi excedido. Para obter mais informações, consulte Cotas do Lambda.

Código de status HTTP: 429

Ver também

Para mais informações sobre como usar essa API em um dos AWS SDKs de idiomas específicos, consulte o seguinte: