View a markdown version of this page

Como conceder acesso de função a uma organização - AWS Lambda

Como conceder acesso de função a uma organização

Para conceder permissões a todas as contas em uma organização da AWS Organizations, recomendamos usar put-resource-policy para criar uma política JSON completa com a chave de condição aws:PrincipalOrgID.

Importante

O uso de put-resource-policy substitui qualquer política existente baseada em recursos no recurso. Se o recurso já tiver as permissões definidas com add-permission, put-resource-policy as substituirá. Use get-resource-policy para recuperar a política existente antes de fazer alterações.

Uso de uma política JSON completa (recomendado)

O exemplo de política a seguir concede acesso de invocação a todas as Contas da AWS na organização o-a1b2c3d4e5f:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "org-access", "Effect": "Allow", "Principal": "*", "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:us-east-2:123456789012:function:my-function", "Condition": { "StringEquals": { "aws:PrincipalOrgID": "o-a1b2c3d4e5f" } } } ] }

Salve a política em um arquivo chamado policy.json e aplique-a:

aws lambda put-resource-policy \ --resource-arn arn:aws:lambda:us-east-2:123456789012:function:my-function \ --policy file://policy.json

Com uma política JSON completa, você também pode negar acesso a contas específicas dentro de uma organização:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "allow-org", "Effect": "Allow", "Principal": "*", "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:us-east-2:123456789012:function:my-function", "Condition": { "StringEquals": { "aws:PrincipalOrgID": "o-a1b2c3d4e5f" } } }, { "Sid": "deny-specific-account", "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::999888777666:root" }, "Action": "lambda:InvokeFunction", "Resource": [ "arn:aws:lambda:us-east-2:123456789012:function:my-function", "arn:aws:lambda:us-east-2:123456789012:function:my-function:*" ] } ] }

Uso de add-permission

Para casos de uso simples, você pode usar add-permission com a opção principal-org-id. Os seguinte comando da concede acesso de invocação a todos os usuários na organização o-a1b2c3d4e5f:

aws lambda add-permission \ --function-name my-function \ --statement-id org-access \ --action lambda:InvokeFunction \ --principal * \ --principal-org-id o-a1b2c3d4e5f
nota

Nesse comando, Principal é *. Isso significa que todos os usuários na organização o-a1b2c3d4e5f recebem permissões de invocação de função. Se você especificar uma Conta da AWS ou um perfil como Principal, somente essa entidade principal receberá permissões de invocação da função, mas apenas se ela também fizer parte organização o-a1b2c3d4e5f.

Para obter mais informações, consulte aws:PrincipalOrgID no Guia do usuário do IAM.