데이터 카탈로그 예제 정책
이 단원에서는 데이터 카탈로그에 다양한 작업을 허용하는 데 사용할 수 있는 예제 정책을 설명합니다.
데이터 카탈로그는 Athena에서 관리하는 IAM 리소스입니다. 따라서 해당 데이터 카탈로그 정책에서 datacatalog
를 입력으로 받는 작업을 사용할 경우 다음과 같이 데이터 카탈로그의 ARN을 지정해야 합니다.
"Resource": [arn:aws:athena:
<region>
:<user-account>
:datacatalog/<datacatalog-name>
]
<datacatalog-name>
은 데이터 카탈로그의 이름입니다. 예를 들어 다음과 같이 test_datacatalog
라는 데이터 카탈로그를 리소스로 지정할 수 있습니다.
"Resource": ["arn:aws:athena:us-east-1:123456789012:datacatalog/test_datacatalog"]
Amazon Athena 작업의 전체 목록은 Amazon Athena API 참조의 API 작업 이름을 참조하세요. IAM 정책에 대한 자세한 내용은 IAM 사용 설명서의 시각적 편집기로 정책 생성을 참조하세요. IAM 정책을 생성하는 방법에 대한 자세한 내용은 IAM 정책으로 데이터 카탈로그에 대한 액세스 제어 단원을 참조하세요.
예 모든 데이터 카탈로그에 대해 전체 액세스를 허용하는 정책의 예
다음 정책은 계정에 있는 모든 데이터 카탈로그 리소스에 대해 전체 액세스를 허용합니다. 해당 계정에서 다른 모든 사용자에 대해 데이터 카탈로그를 관리해야 하는 사용자에게 이 정책을 사용하는 것이 좋습니다.
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "athena:*" ], "Resource":[ "*" ] } ] }
예 지정된 데이터 카탈로그에 대해 전체 액세스를 허용하는 정책의 예
다음 정책은 datacatalogA
라는 하나의 특정 데이터 카탈로그 리소스에 대해 전체 액세스를 허용합니다. 이 정책은 특정 데이터 카탈로그에 대해 전체 제어 권한을 가진 사용자에게 사용할 수 있습니다.
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "athena:ListDataCatalogs", "athena:ListWorkGroups", "athena:GetDatabase", "athena:ListDatabases", "athena:ListTableMetadata", "athena:GetTableMetadata" ], "Resource":"*" }, { "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", "athena:DeleteWorkGroup", "athena:UpdateWorkGroup", "athena:GetWorkGroup", "athena:CreateWorkGroup" ], "Resource":[ "arn:aws:athena:us-east-1:123456789012:workgroup/*" ] }, { "Effect":"Allow", "Action":[ "athena:CreateDataCatalog", "athena:DeleteDataCatalog", "athena:GetDataCatalog", "athena:GetDatabase", "athena:GetTableMetadata", "athena:ListDatabases", "athena:ListTableMetadata", "athena:UpdateDataCatalog" ], "Resource":"arn:aws:athena:us-east-1:123456789012:datacatalog/datacatalogA" } ] }
예 지정된 데이터 카탈로그 쿼리에 대한 정책의 예
다음 정책은 지정된 datacatalogA
에서 사용자가 쿼리를 실행하도록 허용합니다. 사용자는 데이터 카탈로그에 대해 업데이트나 삭제 등의 관리 작업을 수행할 수 없습니다.
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "athena:StartQueryExecution" ], "Resource":[ "arn:aws:athena:us-east-1:123456789012:workgroup/*" ] }, { "Effect":"Allow", "Action":[ "athena:GetDataCatalog" ], "Resource":[ "arn:aws:athena:us-east-1:123456789012:datacatalog/datacatalogA" ] } ] }
예 지정된 데이터 카탈로그의 관리 작업을 위한 정책의 예
다음 정책은 사용자가 datacatalogA
데이터 카탈로그를 만들고, 삭제하고, 세부 정보를 조회하고, 업데이트할 수 있도록 허용합니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "athena:CreateDataCatalog", "athena:GetDataCatalog", "athena:DeleteDataCatalog", "athena:UpdateDataCatalog" ], "Resource": [ "arn:aws:athena:us-east-1:123456789012:datacatalog/datacatalogA" ] } ] }
예 데이터 카탈로그 목록 조회에 대한 정책의 예
다음 정책은 모든 사용자가 모든 데이터 카탈로그의 목록을 조회할 수 있도록 허용합니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "athena:ListDataCatalogs" ], "Resource": "*" } ] }
예 데이터 카탈로그 메타데이터 작업에 대한 정책의 예
다음 정책은 데이터 카탈로그에 대한 메타데이터 작업을 허용합니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "athena:GetDatabase", "athena:GetTableMetadata", "athena:ListDatabases", "athena:ListTableMetadata" ], "Resource": "*" } ] }