

# AddPermission
<a name="API_AddPermission"></a>

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 \$1LATEST.

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](https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html).

## Sintaxe da Solicitação
<a name="API_AddPermission_RequestSyntax"></a>

```
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 name="API_AddPermission_RequestParameters"></a>

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

 ** [FunctionName](#API_AddPermission_RequestSyntax) **   <a name="lambda-AddPermission-request-FunctionName"></a>
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](#API_AddPermission_RequestSyntax) **   <a name="lambda-AddPermission-request-Qualifier"></a>
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 name="API_AddPermission_RequestBody"></a>

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

 ** [Action](#API_AddPermission_RequestSyntax) **   <a name="lambda-AddPermission-request-Action"></a>
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](#API_AddPermission_RequestSyntax) **   <a name="lambda-AddPermission-request-EventSourceToken"></a>
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](#API_AddPermission_RequestSyntax) **   <a name="lambda-AddPermission-request-FunctionUrlAuthType"></a>
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](https://docs.aws.amazon.com/lambda/latest/dg/urls-auth.html) (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](#API_AddPermission_RequestSyntax) **   <a name="lambda-AddPermission-request-Principal"></a>
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](#API_AddPermission_RequestSyntax) **   <a name="lambda-AddPermission-request-PrincipalOrgID"></a>
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](#API_AddPermission_RequestSyntax) **   <a name="lambda-AddPermission-request-RevisionId"></a>
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](#API_AddPermission_RequestSyntax) **   <a name="lambda-AddPermission-request-SourceAccount"></a>
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](#API_AddPermission_RequestSyntax) **   <a name="lambda-AddPermission-request-SourceArn"></a>
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](#API_AddPermission_RequestSyntax) **   <a name="lambda-AddPermission-request-StatementId"></a>
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
<a name="API_AddPermission_ResponseSyntax"></a>

```
HTTP/1.1 201
Content-type: application/json

{
   "Statement": "string"
}
```

## Elementos de Resposta
<a name="API_AddPermission_ResponseElements"></a>

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](#API_AddPermission_ResponseSyntax) **   <a name="lambda-AddPermission-response-Statement"></a>
A instrução da permissão que é adicionada à política da função.  
Tipo: string

## Erros
<a name="API_AddPermission_Errors"></a>

Para obter informações sobre os erros que todas as ações retornam, consulte [Erros comuns](CommonErrors.md).

 ** 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](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html).  
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](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).  
Código de status HTTP: 429

## Ver também
<a name="API_AddPermission_SeeAlso"></a>

Para mais informações sobre como usar essa API em um dos AWS SDKs de idiomas específicos, consulte o seguinte:
+  [AWS Interface de linha de comando](https://docs.aws.amazon.com/goto/aws-cli/lambda-2015-03-31/AddPermission) 
+  [AWS SDK para .NET](https://docs.aws.amazon.com/goto/DotNetSDKV3/lambda-2015-03-31/AddPermission) 
+  [AWS SDK para C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/lambda-2015-03-31/AddPermission) 
+  [AWS SDK for Go](https://docs.aws.amazon.com/goto/SdkForGoV1/lambda-2015-03-31/AddPermission) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/lambda-2015-03-31/AddPermission) 
+  [AWS SDK para JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/lambda-2015-03-31/AddPermission) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/lambda-2015-03-31/AddPermission) 
+  [AWS SDK for Python](https://docs.aws.amazon.com/goto/boto3/lambda-2015-03-31/AddPermission) 
+  [AWS SDK para Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/lambda-2015-03-31/AddPermission) 