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) oumy-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 olambda: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 comoNONE
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
ouSourceAccount
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
ouGetAlias
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: