외부 Hive 메타스토어용 Athena 데이터 커넥터에 대한 액세스 허용 - Amazon Athena

외부 Hive 메타스토어용 Athena 데이터 커넥터에 대한 액세스 허용

이 주제의 권한 정책 예제에서는 필요한 허용된 작업과 해당 작업이 허용되는 리소스를 보여줍니다. IAM 자격 증명에 유사한 권한 정책을 연결하기 전에 이러한 정책을 신중하게 검토하고 요구 사항에 따라 수정합니다.

– IAM 보안 주체가 외부 Hive 메타스토어용 Athena 데이터 커넥터를 사용하여 데이터를 쿼리할 수 있도록 허용합니다.

다음 정책은 AWS 관리형 정책: AmazonAthenaFullAccess 외에 Athena 작업에 대한 전체 액세스 권한을 부여하는 IAM 보안 주체에도 연결됩니다.

{ "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" } ] }
권한에 대한 설명
허용된 작업 설명
"s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload"

s3 작업을 사용하면 "arn:aws:s3:::MyLambdaSpillBucket/MyLambdaSpillLocation"으로 지정된 리소스를 읽고 쓸 수 있습니다. 여기서 MyLambdaSpillLocation은 호출되는 Lambda 함수의 구성에 지정된 유출 버킷(spill bucket)을 식별합니다. arn:aws:lambda:*:MyAWSAcctId:layer:MyAthenaLambdaLayer:* 리소스 식별자는 배포 시 함수 아티팩트 크기를 줄이기 위해 Athena 계층을 사용하여 사용자 지정 런타임 종속성을 만드는 경우에만 필요합니다. 마지막 위치에 있는 *은 계층 버전의 와일드카드입니다.

"lambda:GetFunction", "lambda:GetLayerVersion", "lambda:InvokeFunction"
쿼리가 Resource 블록에 지정된 AWS Lambda 함수를 호출할 수 있습니다. arn:aws:lambda:*:MyAWSAcctId:function:MyAthenaLambdaFunction을 예로 들 수 있습니다. 여기서 MyAthenaLambdaFunction은 호출할 Lambda 함수의 이름을 지정합니다. 예제와 같이 여러 함수를 지정할 수 있습니다.
– IAM 보안 주체가 외부 Hive 메타스토어용 Athena 데이터 커넥터를 생성할 수 있도록 허용합니다.

다음 정책은 AWS 관리형 정책: AmazonAthenaFullAccess 외에 Athena 작업에 대한 전체 액세스 권한을 부여하는 IAM 보안 주체에도 연결됩니다.

{ "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*" } ] }

권한에 대한 설명

쿼리가 Resource 블록에 지정된 AWS Lambda 함수에 대한 AWS Lambda 함수를 호출할 수 있습니다. arn:aws:lambda:*:MyAWSAcctId:function:MyAthenaLambdaFunction을 예로 들 수 있습니다. 여기서 MyAthenaLambdaFunction은 호출되는 Lambda 함수의 이름을 지정합니다. 예제와 같이 여러 함수를 지정할 수 있습니다.