Conceder a outras contas acesso à função do Lambda - AWS Lambda

Conceder a outras contas acesso à função do Lambda

Para compartilhar uma função com outra Conta da AWS, adicione uma instrução de permissões entre contas à política baseada no recurso da função. Execute o comando add-permission e especifique o ID da conta como a principal. O exemplo a seguir concede permissão à conta 111122223333 para invocar my-function com o alias prod.

aws lambda add-permission \ --function-name my-function:prod \ --statement-id xaccount \ --action lambda:InvokeFunction \ --principal 111122223333 \ --output text

A seguinte saída deverá ser mostrada:

{"Sid":"xaccount","Effect":"Allow","Principal":{"AWS":"arn:aws:iam::111122223333:root"},"Action":"lambda:InvokeFunction","Resource":"arn:aws:lambda:us-east-1:123456789012:function:my-function"}

A política baseada em recursos concede permissão para a outra conta acessar a função, mas não permite que os usuários nessa conta excedam suas permissões. Os usuários na outra conta devem ter as permissões de usuário correspondentes para usar a API do Lambda.

Para limitar o acesso a um usuário ou função em outra conta, especifique o ARN completo da identidade como o principal. Por exemplo, arn:aws:iam::123456789012:user/developer.

O alias limita qual versão a outra conta pode chamar. Ele exige que a outra conta inclua o alias no ARN da função.

aws lambda invoke \ --function-name arn:aws:lambda:us-east-2:123456789012:function:my-function:prod out

A seguinte saída deverá ser mostrada:

{ "StatusCode": 200, "ExecutedVersion": "1" }

Depois disso, o proprietário da função pode atualizar o alias para apontar para uma nova versão sem que o chamador precise alterar a maneira como eles invocam sua função. Isso garante que a outra conta não precise alterar o código para usar a nova versão, e ela tem permissão somente para invocar a versão da função associada ao alias.

Conceda acesso entre contas para a maioria das ações de API que operam em uma função existente. Por exemplo, é possível conceder acesso a lambda:ListAliases para obter uma lista de aliases ou a lambda:GetFunction para permitir que eles façam download do código da função. Adicione cada permissão separadamente ou use lambda:* para conceder acesso a todas as ações da função especificada.

Para conceder permissão a outras contas para várias funções ou para ações que não operem em uma função, recomendamos usar as funções do IAM.