Amazon Neptune에서 IAM 데이터 액세스 정책 생성 - Amazon Neptune

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon Neptune에서 IAM 데이터 액세스 정책 생성

다음 예제에서는 Neptune 엔진 릴리스 버전 1.2.0.0에 도입된 데이터 영역 APIs 및 작업에 대한 세분화된 액세스 제어를 사용하는 사용자 지정 IAM 정책을 생성하는 방법을 보여줍니다.

Neptune DB 클러스터의 데이터에 대한 무제한 액세스를 허용하는 정책 예제

다음 예제 정책은 IAM 사용자가 IAM 데이터베이스 인증을 사용하여 Neptune DB 클러스터에 연결할 수 있도록 허용하고 “*” 문자를 사용하여 사용 가능한 모든 작업과 일치시킵니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "neptune-db:*", "Resource": "arn:aws:neptune-db:us-east-1:123456789012:cluster-ABCD1234EFGH5678IJKL90MNOP/*" } ] }

이전 예제에는 Neptune IAM 인증에 특정한 형식ARN의 리소스가 포함되어 있습니다. 를 구성하려면 데이터 리소스 지정을 ARN참조하세요. IAM Amazon Neptune의 데이터에 액세스하기 위한 리소스 유형 IAM 권한 부여에 ARN 사용되는 Resource는 생성 시 클러스터에 ARN 할당된 와 동일하지 않습니다.

Neptune DB 클러스터에 대한 읽기 전용 액세스를 허용하는 정책 예제

다음 정책은 Neptune DB 클러스터의 데이터에 대한 전체 읽기 전용 액세스 권한을 부여합니다.

{ "Version":"2012-10-17", "Statement":[ { "Effect": "Allow", "Action": [ "neptune-db:Read*", "neptune-db:Get*", "neptune-db:List*" ], "Resource": "arn:aws:neptune-db:us-east-1:123456789012:cluster-ABCD1234EFGH5678IJKL90MNOP/*" } ] }

Neptune DB 클러스터에 대한 모든 액세스를 거부하는 정책 예제

기본 IAM 작업은 Allow 효과가 부여되지 않는 한 DB 클러스터에 대한 액세스를 거부하는 것입니다. 그러나 다음 정책은 특정 AWS 계정 및 리전에 대한 DB 클러스터에 대한 모든 액세스를 거부하며, 이는 어떤 Allow 영향보다 우선합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "neptune-db:*", "Resource": "arn:aws:neptune-db:us-east-1:123456789012:cluster-ABCD1234EFGH5678IJKL90MNOP/*" } ] }

쿼리를 통해 읽기 액세스 권한을 부여하는 정책 예제

다음 정책은 쿼리를 사용하여 Neptune DB 클러스터에서 읽을 수 있는 권한만 부여합니다.

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "neptune-db:ReadDataViaQuery", "Resource": "arn:aws:neptune-db:us-east-1:123456789012:cluster-ABCD1234EFGH5678IJKL90MNOP/*" } ] }

Gremlin 쿼리만 허용하는 정책 예제

다음 정책은 neptune-db:QueryLanguage 조건 키를 사용하여 Gremlin 쿼리 언어로만 Neptune을 쿼리할 수 있는 권한을 부여합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "neptune-db:ReadDataViaQuery", "neptune-db:WriteDataViaQuery", "neptune-db:DeleteDataViaQuery" ], "Resource": "*", "Condition": { "StringEquals": { "neptune-db:QueryLanguage": "Gremlin" } } } ] }

Neptune ML 모델 관리를 제외한 모든 액세스를 허용하는 정책 예제

다음 정책은 Neptune ML 모델 관리 기능을 제외한 Neptune 그래프 작업에 대한 모든 액세스 권한을 부여합니다.

{ "Version":"2012-10-17", "Statement":[ { "Effect": "Allow", "Action": [ "neptune-db:CancelLoaderJob", "neptune-db:CancelQuery", "neptune-db:DeleteDataViaQuery", "neptune-db:DeleteStatistics", "neptune-db:GetEngineStatus", "neptune-db:GetLoaderJobStatus", "neptune-db:GetQueryStatus", "neptune-db:GetStatisticsStatus", "neptune-db:GetStreamRecords", "neptune-db:ListLoaderJobs", "neptune-db:ManageStatistics", "neptune-db:ReadDataViaQuery", "neptune-db:ResetDatabase", "neptune-db:StartLoaderJob", "neptune-db:WriteDataViaQuery" ], "Resource": "arn:aws:neptune-db:us-east-1:123456789012:cluster-ABCD1234EFGH5678IJKL90MNOP/*" } ] }

Neptune ML 모델 관리에 대한 액세스를 허용하는 정책 예제

이 정책은 Neptune ML 모델 관리 기능에 대한 액세스 권한을 부여합니다.

{ "Version":"2012-10-17", "Statement":[ { "Effect": "Allow", "Action": [ "neptune-db:CancelMLDataProcessingJob", "neptune-db:CancelMLModelTrainingJob", "neptune-db:CancelMLModelTransformJob", "neptune-db:CreateMLEndpoint", "neptune-db:DeleteMLEndpoint", "neptune-db:GetMLDataProcessingJobStatus", "neptune-db:GetMLEndpointStatus", "neptune-db:GetMLModelTrainingJobStatus", "neptune-db:GetMLModelTransformJobStatus", "neptune-db:ListMLDataProcessingJobs", "neptune-db:ListMLEndpoints", "neptune-db:ListMLModelTrainingJobs", "neptune-db:ListMLModelTransformJobs", "neptune-db:StartMLDataProcessingJob", "neptune-db:StartMLModelTrainingJob", "neptune-db:StartMLModelTransformJob" ], "Resource": "arn:aws:neptune-db:us-east-1:123456789012:cluster-ABCD1234EFGH5678IJKL90MNOP/*" } ] }

전체 쿼리 액세스 권한을 부여하는 정책 예제

다음 정책은 Neptune 그래프 쿼리 작업에 대한 전체 액세스 권한을 부여하지만, 빠른 재설정, 스트림, 대량 로더, Neptune ML 모델 관리 등과 같은 기능에는 부여하지 않습니다.

{ "Version":"2012-10-17", "Statement":[ { "Effect": "Allow", "Action": [ "neptune-db:ReadDataViaQuery", "neptune-db:WriteDataViaQuery", "neptune-db:DeleteDataViaQuery", "neptune-db:GetEngineStatus", "neptune-db:GetQueryStatus", "neptune-db:CancelQuery" ], "Resource": "arn:aws:neptune-db:us-east-1:123456789012:cluster-ABCD1234EFGH5678IJKL90MNOP/*" } ] }

Gremlin 쿼리에만 전체 액세스 권한을 부여하는 정책 예제

다음 정책은 Gremlin 쿼리 언어를 사용하는 Neptune 그래프 쿼리 작업에 대한 전체 액세스 권한을 부여하지만, 다른 언어의 쿼리에는 사용할 수 없습니다. 또한 빠른 재설정, 스트림, 대량 로더, Neptune ML 모델 관리 등과 같은 기능에 대한 액세스 권한은 부여되지 않습니다.

{ "Version":"2012-10-17", "Statement":[ { "Effect": "Allow", "Action": [ "neptune-db:ReadDataViaQuery", "neptune-db:WriteDataViaQuery", "neptune-db:DeleteDataViaQuery", "neptune-db:GetEngineStatus", "neptune-db:GetQueryStatus", "neptune-db:CancelQuery" ], "Resource": [ "arn:aws:neptune-db:us-east-1:123456789012:cluster-ABCD1234EFGH5678IJKL90MNOP/*" ], "Condition": { "StringEquals": { "neptune-db:QueryLanguage":"Gremlin" } } } ] }

빠른 재설정을 제외한 모든 액세스 권한을 부여하는 정책 예제

다음 정책은 빠른 재설정을 사용하는 경우를 제외하고 Neptune DB 클러스터에 대한 모든 액세스 권한을 부여합니다.

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "neptune-db:*", "Resource": "arn:aws:neptune-db:us-east-1:123456789012:cluster-ABCD1234EFGH5678IJKL90MNOP/*" }, { "Effect": "Deny", "Action": "neptune-db:ResetDatabase", "Resource": "arn:aws:neptune-db:us-east-1:123456789012:cluster-ABCD1234EFGH5678IJKL90MNOP/*" } ] }