

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

# Amazon Neptune에서 IAM 데이터 액세스 정책 생성
<a name="iam-data-access-examples"></a>

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

## Neptune DB 클러스터의 데이터에 대한 무제한 액세스를 허용하는 정책 예제
<a name="iam-auth-data-policy-example-general"></a>

다음은 IAM 사용자가 IAM 데이터베이스 인증 방식을 사용하여 Neptune DB 클러스터에 연결할 수 있도록 허용하는 정책 예제입니다. 그리고 '`*`' 문자로 사용 가능한 모든 작업을 일치시킵니다.

------
#### [ JSON ]

****  

```
{
  "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-data-resources.md)을 참조하세요. IAM 인증 `Resource`에 사용되는 ARN은 생성 시 클러스터에 할당된 ARN과 다릅니다.

## Neptune DB 클러스터에 대한 읽기 전용 액세스를 허용하는 정책 예제
<a name="iam-auth-data-policy-example-read-only"></a>

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

------
#### [ JSON ]

****  

```
{
  "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 클러스터에 대한 모든 액세스를 거부하는 정책 예제
<a name="iam-auth-data-policy-example-deny"></a>

기본 IAM 작업은 `Allow` *효과*가 부여된 경우를 제외하고 DB 클러스터에 대한 액세스를 거부하는 것입니다. 그러나 다음 정책은 특정 AWS 계정 및 리전의 DB 클러스터에 대한 모든 액세스를 거부합니다. 그러면 모든 `Allow` 효과보다 우선합니다.

------
#### [ JSON ]

****  

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

------

## 쿼리를 통해 읽기 액세스 권한을 부여하는 정책 예제
<a name="iam-auth-data-policy-example-read-query"></a>

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

------
#### [ JSON ]

****  

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

------

## Gremlin 쿼리만 허용하는 정책 예제
<a name="iam-auth-data-policy-example-gremlin-only"></a>

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

------
#### [ JSON ]

****  

```
{
  "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 모델 관리를 제외한 모든 액세스를 허용하는 정책 예제
<a name="iam-auth-data-policy-example-all-but-ml"></a>

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

------
#### [ JSON ]

****  

```
{
  "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 모델 관리에 대한 액세스를 허용하는 정책 예제
<a name="iam-auth-data-policy-example-ml"></a>

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

------
#### [ JSON ]

****  

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

------

## 전체 쿼리 액세스 권한을 부여하는 정책 예제
<a name="iam-auth-data-policy-example-full-query"></a>

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

------
#### [ JSON ]

****  

```
{
  "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 쿼리에만 전체 액세스 권한을 부여하는 정책 예제
<a name="iam-auth-data-policy-example-full-gremlin-access"></a>

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

------
#### [ JSON ]

****  

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

------

## 빠른 재설정을 제외한 모든 액세스 권한을 부여하는 정책 예제
<a name="iam-auth-data-policy-example-all-but-fast-reset"></a>

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

------
#### [ JSON ]

****  

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

------