내용으로 건너뛰기

Lake Formation에서 권한을 제한한 후에도 IAM 사용자가 Athena를 사용하여 데이터 카탈로그 리소스에 액세스할 수 있는 이유는 무엇입니까?

3분 분량
0

AWS Lake Formation에서 AWS Identity and Access Management(IAM) 사용자의 권한을 제한했습니다. 하지만 IAM 사용자가 여전히 Amazon Athena에 액세스하여 테이블을 쿼리할 수 있습니다.

간략한 설명

IAM 사용자 액세스를 제한하려면 Lake Formation 권한 모델을 사용하도록 신규 및 기존 데이터 카탈로그 리소스의 기본 보안 설정을 업데이트합니다.

Lake Formation 기본 권한에 대해 자세히 알아보려면 AWS Glue 데이터 권한을 AWS Lake Formation 모델로 업그레이드를 참조하십시오.

해결 방법

참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.

새 데이터 카탈로그 리소스의 기본 보안 설정 업데이트

데이터 레이크의 새 데이터 카탈로그 리소스에 대해서는 데이터 레이크의 기본 설정 변경을 참조하십시오. 기본 보안 설정 업데이트는 새 리소스에만 적용됩니다.

특정 새 리소스에 대한 보안 설정만 업데이트하려면 리소스를 생성하십시오. 그런 다음 리소스에 대한 권한만 업데이트하십시오. 자세한 내용은 데이터 카탈로그 리소스에 대한 권한 부여를 참조하십시오.

기존 데이터 카탈로그 리소스의 보안 설정 업데이트

기존 데이터베이스에서 IAMAllowedPrincipals 권한을 제거하려면 다음 단계를 완료하십시오.

  1. AWS Lake Formation 콘솔을 엽니다.
  2. 탐색 창의 데이터 카탈로그에서 데이터베이스를 선택합니다.
  3. 업데이트하려는 데이터베이스 옆에 있는 원을 선택합니다.
  4. 작업을 선택한 다음, 편집을 선택합니다.
  5. 새로 생성된 테이블을 위한 기본 권한에서 이 데이터베이스의 새 테이블에 IAM 액세스 제어만 사용을 선택 취소합니다.
  6. 저장을 선택합니다.
  7. 데이터베이스 페이지에서 데이터베이스가 선택되었는지 확인합니다. 작업을 선택하고 취소를 선택합니다.
  8. 권한 취소 대화 상자의 IAM 사용자 및 역할 목록에서 그룹에 대해 IAMAllowedPrincipals를 선택합니다.
  9. 데이터베이스 권한에서 슈퍼가 선택되어 있는지 확인한 다음 취소를 선택합니다.

기존 테이블에서 IAMAllowedPrincipals 권한을 제거하려면 다음 단계를 완료하십시오.

  1. AWS Lake Formation 콘솔을 엽니다.
  2. 탐색 창에서 테이블을 선택합니다.
  3. 테이블 페이지에서 업데이트하려는 테이블 옆에 있는 원을 선택합니다.
  4. 작업을 선택하고 취소를 선택합니다.
  5. 권한 취소 대화 상자의 IAM 사용자 및 역할 목록에서 그룹에 대해 IAMAllowedPrincipals를 선택합니다.
  6. 테이블 권한에서 슈퍼가 선택되어 있는지 확인한 다음 취소를 선택합니다.

참고: 데이터베이스 또는 테이블에 대한 Amazon Simple Storage Service(Amazon S3) 경로가 Lake Formation에 등록되어 있는지 확인하십시오.

기존 리소스의 보안 설정을 변경한 후 AWS CLI 또는 Lake Formation 콘솔을 사용하여 IAM 사용자에게 테이블 권한을 부여합니다.

Lake Formation 작업을 수행하려면 사용자에게 Lake Formation 및 IAM 권한이 있어야 합니다. Lake Formation이 권한을 관리할 때 Athena에서 테이블을 쿼리하려면 사용자에게 다음과 같은 IAM 권한이 있어야 합니다.

{  
    "Version": "2012-10-17",  
    "Statement": [  
        {  
            "Sid": "minimumAWSGlueLakeFormationAthenapermissiontorunselectqueryontable",  
            "Effect": "Allow",  
            "Action": [  
                "lakeformation:GetDataAccess",  
                "glue:SearchTables",  
                "glue:GetTables",  
                "glue:GetPartitions",  
                "glue:GetDatabases",  
                "glue:GetTable",  
                "glue:GetDatabase",  
                "athena:GetNamespace",  
                "athena:ListWorkGroups",  
                "athena:GetCatalogs",  
                "athena:GetNamespaces",  
                "athena:GetExecutionEngine",  
                "athena:GetExecutionEngines",  
                "athena:GetTables",  
                "athena:GetTable"  
            ],  
            "Resource": "*"  
        },  
        {  
            "Sid": "AthenaPermissionToRunQueryInAWorkergroup",  
            "Effect": "Allow",  
            "Action": [  
                "athena:StartQueryExecution",  
                "athena:GetQueryResults",  
                "athena:DeleteNamedQuery",  
                "athena:GetNamedQuery",  
                "athena:ListQueryExecutions",  
                "athena:StopQueryExecution",  
                "athena:GetQueryResultsStream",  
                "athena:ListNamedQueries",  
                "athena:CreateNamedQuery",  
                "athena:GetQueryExecution",  
                "athena:BatchGetNamedQuery",  
                "athena:BatchGetQueryExecution"  
            ],  
            "Resource": [  
                "arn:aws:athena:*:*:workgroup/*"  
            ]  
        },  
        {  
            "Sid": "allowS3PermissionToSaveAthenaQueryResults",  
            "Effect": "Allow",  
            "Action": [  
                "s3:PutObject",  
                "s3:GetObject",  
                "s3:ListBucketMultipartUploads",  
                "s3:AbortMultipartUpload",  
                "s3:CreateBucket",  
                "s3:ListBucket",  
                "s3:GetBucketLocation",  
                "s3:ListMultipartUploadParts"  
            ],  
            "Resource": [  
                "arn:aws:s3:::aws-athena-query-results-*"  
            ]  
        }  
    ]  
}
AWS 공식업데이트됨 일 년 전