Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Usar chaves de contexto CalledVia para o Athena

Modo de foco
Usar chaves de contexto CalledVia para o Athena - Amazon Athena

Quando uma entidade principal faz uma solicitação para a AWS, a AWS reúne as informações da solicitação em um contexto de solicitação que avalia e autoriza a solicitação. É possível usar o elemento Condition de uma política JSON para comparar chaves no contexto da solicitação com os valores de chave especificados em sua política. As chaves de contexto de condição global são chaves de condição com um prefixo aws:.

Sobre a chave de contexto aws:CalledVia

Você pode usar a chave de contexto de condição global aws:CalledVia para comparar os serviços na política com os serviços que fazem solicitações em nome do principal do IAM (usuário ou função). Quando uma entidade principal faz uma solicitação a um AWS service (Serviço da AWS), esse serviço pode usar as credenciais do principal para fazer solicitações subsequentes a outros serviços. A chave aws:CalledVia contém uma lista ordenada de cada serviço na cadeia que fez solicitações em nome do principal.

Ao especificar um nome de elemento principal de serviço para a chave de contexto aws:CalledVia, você pode tornar a chave de contexto específica do AWS service (Serviço da AWS). Por exemplo, você pode usar a chave de condição aws:CalledVia para limitar as solicitações somente àquelas feitas pelo Athena. Para usar a chave de condição aws:CalledVia em uma política com o Athena, especifique o nome do principal do serviço do Athena athena.amazonaws.com, como mostrado no exemplo a seguir.

... "Condition": { "ForAnyValue:StringEquals": { "aws:CalledVia": "athena.amazonaws.com" } } ...

Você pode usar a chave de contexto aws:CalledVia para garantir que os autores da chamada só tenham acesso a um recurso (como uma função do Lambda) se o chamarem pelo Athena.

nota

A chave de contexto aws:CalledVia não é compatível com o recurso de propagação de identidade confiável.

Adicionar uma chave de contexto CalledVia para acesso às funções do Lambda

O Athena exige que o autor da chamada tenha as permissões lambda:InvokeFunction para invocar a função do Lambda associada à consulta. A Instrução a seguir especifica que o usuário só pode invocar as funções do Lambda no Athena.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor3", "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:us-east-1:111122223333:function:OneAthenaLambdaFunction", "Condition": { "ForAnyValue:StringEquals": { "aws:CalledVia": "athena.amazonaws.com" } } } ] }

O exemplo a seguir mostra a adição da instrução anterior a uma política que permite a um usuário executar e ler uma consulta federada. Os principais com permissão para realizar essas ações podem executar consultas que especificam catálogos do Athena associados a uma origem dos dados federada. No entanto, o principal não pode acessar a função do Lambda associada, a menos que ela seja invocada pelo Athena.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "athena:GetWorkGroup", "s3:PutObject", "s3:GetObject", "athena:StartQueryExecution", "s3:AbortMultipartUpload", "athena:StopQueryExecution", "athena:GetQueryExecution", "athena:GetQueryResults", "s3:ListMultipartUploadParts" ], "Resource": [ "arn:aws:athena:*:111122223333:workgroup/WorkGroupName", "arn:aws:s3:::MyQueryResultsBucket/*", "arn:aws:s3:::MyLambdaSpillBucket/MyLambdaSpillPrefix*" ] }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": "athena:ListWorkGroups", "Resource": "*" }, { "Sid": "VisualEditor2", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::MyLambdaSpillBucket" }, { "Sid": "VisualEditor3", "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": [ "arn:aws:lambda:*:111122223333:function:OneAthenaLambdaFunction", "arn:aws:lambda:*:111122223333:function:AnotherAthenaLambdaFunction" ], "Condition": { "ForAnyValue:StringEquals": { "aws:CalledVia": "athena.amazonaws.com" } } } ] }

Para obter mais informações sobre as chaves de condição CalledVia, consulte Chaves de contexto de condição global AWS no Manual do usuário do IAM.

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.