Permitir acesso a um conector de dados do Athena para metastore externo do Hive - Amazon Athena

Permitir acesso a um conector de dados do Athena para metastore externo do Hive

Os exemplos de política de permissão neste tópico demonstram as ações permitidas necessárias e os recursos para os quais são permitidas. Examine essas políticas com atenção e modifique-as de acordo com seus requisitos antes de anexar políticas de permissões semelhantes às identidades do IAM.

exemplo
: permitir que uma entidade principal do IAM consulte dados usando o conector de dados do Athena para metastore externo do Hive

A política a seguir é anexada aos principais do IAM, além de Política gerenciada pela AWS: AmazonAthenaFullAccess, que concede acesso completo às ações do Athena.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor1", "Effect": "Allow", "Action": [ "lambda:GetFunction", "lambda:GetLayerVersion", "lambda:InvokeFunction" ], "Resource": [ "arn:aws:lambda:*:111122223333:function:MyAthenaLambdaFunction", "arn:aws:lambda:*:111122223333:function:AnotherAthenaLambdaFunction", "arn:aws:lambda:*:111122223333:layer:MyAthenaLambdaLayer:*" ] }, { "Sid": "VisualEditor2", "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": "arn:aws:s3:::MyLambdaSpillBucket/MyLambdaSpillLocation" } ] }
Explicação de permissões
Ações permitidas Explicação
"s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload"

As ações do s3 permitem ler e gravar no recurso especificado como "arn:aws:s3:::MyLambdaSpillBucket/MyLambdaSpillLocation", em que MyLambdaSpillLocation identifica o bucket de vazamento que foi definido na configuração da(s) função(ões) do Lambda invocada(s). O identificador do recurso arn:aws:lambda:*:MyAWSAcctId:layer:MyAthenaLambdaLayer:* é necessário somente se você usa uma camada do Lambda para criar dependências de tempo de execução personalizadas para reduzir o tamanho do artefato da função no momento da implantação. O * na última posição é um curinga para a versão da camada.

"lambda:GetFunction", "lambda:GetLayerVersion", "lambda:InvokeFunction"
Permite que as consultas chamem as funções do AWS Lambda especificadas no bloco Resource. Por exemplo, arn:aws:lambda:*:MyAWSAcctId:function:MyAthenaLambdaFunction, em que MyAthenaLambdaFunction especifica o nome da função do Lambda que será invocada. Várias funções podem ser especificadas conforme mostrado no exemplo.
exemplo
: permitir que uma entidade principal do IAM crie um conector de dados do Athena para metastore externo do Hive

A política a seguir é anexada aos principais do IAM, além de Política gerenciada pela AWS: AmazonAthenaFullAccess, que concede acesso completo às ações do Athena.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "lambda:GetFunction", "lambda:ListFunctions", "lambda:GetLayerVersion", "lambda:InvokeFunction", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:PublishLayerVersion", "lambda:DeleteLayerVersion", "lambda:UpdateFunctionConfiguration", "lambda:PutFunctionConcurrency", "lambda:DeleteFunctionConcurrency" ], "Resource": "arn:aws:lambda:*:111122223333: function: MyAthenaLambdaFunctionsPrefix*" } ] }

Explicação de permissões

Permite que as consultas chamem as funções do AWS Lambda para as funções do AWS Lambda especificadas no bloco Resource. Por exemplo, arn:aws:lambda:*:MyAWSAcctId:function:MyAthenaLambdaFunction, em que MyAthenaLambdaFunction especifica o nome da função do Lambda que será invocada. Várias funções podem ser especificadas conforme mostrado no exemplo.