Configurar políticas do IAM para pontos de acesso do Object Lambda
Os pontos de acesso do Amazon S3 são compatíveis com as políticas de recursos do AWS Identity and Access Management (IAM) que você pode usar para controlar o uso do ponto de acesso por recurso, usuário ou outras condições. Você pode controlar o acesso por meio de uma política de recursos opcional no ponto de acesso do Object Lambda ou uma política de recursos no ponto de acesso de suporte. Para obter um exemplo detalhado, consulte Tutorial: Como transformar dados para sua aplicação com o S3 Object Lambda e Tutorial: Detectar e editar dados PII com o S3 Object Lambda e o Amazon Comprehend.
Os quatro recursos a seguir devem ter permissões concedidas para trabalhar com pontos de acesso do Object Lambda:
-
A identidade do IAM, como um usuário ou um perfil. Para obter mais informações sobre as identidades do IAM e as práticas recomendadas, consulte Identidades do IAM (usuários, grupos de usuários e perfis) no Guia do usuário do IAM.
-
O bucket e o ponto de acesso padrão associado. Quando você trabalha com pontos de acesso do Object Lambda, esse ponto de acesso padrão é conhecido como ponto de acesso de suporte.
-
O ponto de acesso do Object Lambda.
-
A função do AWS Lambda.
Importante
Antes de salvar a política, solucione os avisos de segurança, os erros, os avisos gerais e as sugestões de AWS Identity and Access Management Access Analyzer. O IAM Access Analyzer executa verificações de política para validar sua política em relação à gramática das políticas e às práticas recomendadas do IAM. Essas verificações geram descobertas e fornecem recomendações práticas que ajudam a criar políticas que sejam funcionais e estejam em conformidade com as práticas recomendadas de segurança.
Para saber mais sobre a validação de políticas usando o IAM Access Analyzer, consulte Validação de políticas do IAM Access Analyzer no Guia do usuário do IAM. Para visualizar uma lista de avisos, erros e sugestões retornados pelo IAM Access Analyzer, consulte Referência de verificação de políticas do IAM Access Analyzer.
Os seguintes exemplos de política assumem que você tem os seguintes recursos:
-
Um bucket do Amazon S3 com o seguinte nome do recurso da Amazon (ARN):
arn:aws:s3:::
amzn-s3-demo-bucket1
-
Um ponto de acesso do Amazon S3 Standard nesse bucket com o seguinte ARN:
arn:aws:s3:
us-east-1
:111122223333
:accesspoint/my-access-point
-
Um ponto de acesso do Object Lambda com o seguinte ARN:
arn:aws:s3-object-lambda:
us-east-1
:111122223333
:accesspoint/my-object-lambda-ap
-
Uma função do AWS Lambda com o seguinte ARN:
arn:aws:lambda:
us-east-1
:111122223333
:function:MyObjectLambdaFunction
nota
Se estiver usando uma função do Lambda em sua conta, você deverá incluir a versão da função na declaração da política. No seguinte exemplo de ARN, a versão é indicada por 1
:
arn:aws:lambda:
us-east-1
:111122223333
:function:MyObjectLambdaFunction
:1
O Lambda não permite adicionar políticas do IAM à versão $LATEST
. Para obter mais informações sobre as versões de funções do Lambda, consulte Versões de funções do Lambda no Guia do desenvolvedor do AWS Lambda.
exemplo : Política de buckets que delega controle de acesso a pontos de acesso
O exemplo de política de buckets do S3 a seguir delega o controle de acesso para um bucket aos pontos de acesso padrão do bucket. Essa política permite total acesso a todos os pontos de acesso pertencentes à conta do proprietário do bucket. Assim, todo o acesso a esse bucket é controlado pelas políticas anexadas aos seus pontos de acesso. Os usuários só podem ler no bucket por meio de um ponto de acesso, o que significa que as operações só podem ser invocadas por meio dos pontos de acesso. Para ter mais informações, consulte Delegar controle de acesso a pontos de acesso.
{ "Version": "2012-10-17", "Statement" : [ { "Effect": "Allow", "Principal" : { "AWS":"
account-ARN
"}, "Action" : "*", "Resource" : [ "arn:aws:s3:::amzn-s3-demo-bucket1
", "arn:aws:s3:::amzn-s3-demo-bucket1
/*" ], "Condition": { "StringEquals" : { "s3:DataAccessPointAccount" : "Bucket owner's account ID
" } } }] }
exemplo : política do IAM que concede ao usuário as permissões necessárias para usar um ponto de acesso do Object Lambda
A seguinte política do IAM concede a um usuário permissões para a função do Lambda, o ponto de acesso padrão e o ponto de acesso do Object Lambda.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowLambdaInvocation", "Action": [ "lambda:InvokeFunction" ], "Effect": "Allow", "Resource": "arn:aws:lambda:
us-east-1
:111122223333
:function:MyObjectLambdaFunction
:1
", "Condition": { "ForAnyValue:StringEquals": { "aws:CalledVia": [ "s3-object-lambda.amazonaws.com" ] } } }, { "Sid": "AllowStandardAccessPointAccess", "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "arn:aws:s3:us-east-1
:111122223333
:accesspoint/my-access-point
/*", "Condition": { "ForAnyValue:StringEquals": { "aws:CalledVia": [ "s3-object-lambda.amazonaws.com" ] } } }, { "Sid": "AllowObjectLambdaAccess", "Action": [ "s3-object-lambda:Get*", "s3-object-lambda:List*" ], "Effect": "Allow", "Resource": "arn:aws:s3-object-lambda:us-east-1
:111122223333
:accesspoint/my-object-lambda-ap
" } ] }
Habilitar permissões para funções de execução do Lambda
Quando são feitas solicitações GET
a um ponto de acesso do Object Lambda, a função do Lambda precisa de permissão para enviar dados ao ponto de acesso do S3 Object Lambda. Isso é fornecido habilitando a permissão s3-object-lambda:WriteGetObjectResponse
na função de execução da sua função do Lambda. Crie uma nova função de execução ou atualize uma existente.
nota
Sua função precisa da permissão s3-object-lambda:WriteGetObjectResponse
somente se você estiver fazendo uma solicitação GET
.
Como criar uma função de execução no console do IAM
-
Abra o console do IAM, em https://console.aws.amazon.com/iam/
. -
No painel de navegação à esquerda, escolha Funções.
-
Selecione Criar perfil.
-
Em Common use cases (Casos de uso comuns), selecione Lambda.
-
Escolha Próximo.
-
Na página Add permissions (Adicionar permissões), pesquise a política
AmazonS3ObjectLambdaExecutionRolePolicy
gerenciada pela AWS e marque a caixa de seleção ao lado do nome da política. Essa política deve conter a ação
s3-object-lambda:WriteGetObjectResponse
. -
Escolha Próximo.
-
Na página Name, review, and create (Nomear, revisar e criar), para Role name (Nome da função), insira
s3-object-lambda-role
. -
(Opcional) Adicione uma descrição e etiquetas para esse perfil.
-
Selecione Criar perfil.
-
Aplique a
s3-object-lambda-role
recém-criada como a função de execução de sua função Lambda. Isso pode ser feito durante ou após a criação da função do Lambda no console do Lambda.
Para obter informações sobre funções de execução, consulte Função de execução do Lambda no Guia do desenvolvedor do AWS Lambda.
Usar chaves de contexto com pontos de acesso do Object Lambda
O S3 Object Lambda avaliará chaves de contexto, como s3-object-lambda:TlsVersion
ou s3-object-lambda:AuthType
, relacionadas à conexão ou assinatura da solicitação. Todas as outras chaves de contexto, como s3:prefix
, são avaliadas pelo Simple Storage Service (Amazon S3).