

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

# IAM 정책을 사용하여 Amazon Neptune 데이터베이스에 대한 액세스 관리
<a name="security-iam-access-manage"></a>

[IAM 정책](https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html)은 작업 및 리소스 사용 권한을 정의하는 JSON 객체입니다.

정책을 AWS 생성하고 자격 증명 또는 리소스에 연결하여 AWS 에서 액세스를 제어합니다. 정책은 자격 증명 또는 리소스와 연결될 때 권한을 정의합니다.는 보안 주체가 요청할 때 이러한 정책을 AWS 평가합니다. 대부분의 정책은에 JSON 문서 AWS 로 저장됩니다. JSON 정책 문서에 대한 자세한 내용은 *IAM 사용 설명서*의 [JSON 정책 개요](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json) 섹션을 참조하세요.

정책을 사용하여 관리자는 어떤 **보안 주체**가 어떤 **리소스**에 대해 어떤 **조건**에서 **작업**을 수행할 수 있는지 정의하여 누가 무엇을 액세스할 수 있는지 지정합니다.

기본적으로 사용자 및 역할에는 어떠한 권한도 없습니다. IAM 관리자는 IAM 정책을 생성하고 사용자가 수임할 수 있는 역할에 추가합니다. IAM 정책은 작업을 수행하기 위해 사용하는 방법과 관계없이 작업에 대한 권한을 정의합니다.

## 자격 증명 기반 정책
<a name="security_iam_access-manage-id-based-policies"></a>

ID 기반 정책은 ID(사용자, 사용자 그룹 또는 역할)에 연결하는 JSON 권한 정책 문서입니다. 이러한 정책은 자격 증명이 수행할 수 있는 작업, 대상 리소스 및 이에 관한 조건을 제어합니다. ID 기반 정책을 생성하는 방법을 알아보려면 *IAM 사용 설명서*에서 [고객 관리형 정책으로 사용자 지정 IAM 권한 정의](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)를 참조하세요.

ID 기반 정책은 *인라인 정책*(단일 ID에 직접 포함) 또는 *관리형 정책*(여러 ID에 연결된 독립 실행형 정책)일 수 있습니다. 관리형 정책 또는 인라인 정책을 선택하는 방법을 알아보려면 *IAM 사용 설명서*의 [관리형 정책 및 인라인 정책 중에서 선택](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-choosing-managed-or-inline.html) 섹션을 참조하세요.

## AWS 조직에서 서비스 제어 정책(SCP) 사용
<a name="security_iam_access-manage-scp"></a>

서비스 제어 정책(SCPs)은의 조직 또는 조직 단위(OU)에 대한 최대 권한을 지정하는 JSON 정책입니다[AWS Organizations](https://aws.amazon.com/organizations/). AWS Organizations 는 기업이 소유한 여러 AWS 계정을 그룹화하고 중앙에서 관리하기 위한 서비스입니다. 조직에서 모든 기능을 활성화할 경우, 서비스 제어 정책(SCP)을 임의의 또는 모든 계정에 적용할 수 있습니다. SCP는 각 계정 루트 사용자를 포함하여 멤버 AWS 계정의 엔터티에 대한 권한을 제한합니다. 조직 및 SCPs에 대한 자세한 내용은 AWS Organizations 사용 설명서의 [ SCPs 작동 방식을 참조하세요](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_about-scps.html).

 AWS 조직 내 AWS 계정에 Amazon Neptune을 배포하는 고객은 SCPs 활용하여 Neptune을 사용할 수 있는 계정을 제어할 수 있습니다. 멤버 계정 내에서 Neptune에 액세스하려면 다음을 수행해야 합니다.
+  Neptune 데이터베이스 작업에 대한 `rds:*` 및 `neptune-db:*` 액세스를 허용합니다. Neptune 데이터베이스에 Amazon RDS 권한이 필요한 이유에 대한 자세한 내용은 [Neptune 데이터베이스를 사용하는 데 Amazon RDS 권한과 리소스가 필요한 이유는 무엇입니까?](https://aws.amazon.com/neptune/faqs/)를 참조하세요.
+  Neptune Analytics 작업을 위해 `neptune-graph:*`에 대한 액세스를 허용합니다.

## Amazon Neptune 콘솔 사용에 필요한 권한
<a name="security-iam-access-manage-console"></a>

Amazon Neptune 콘솔에서 작업하려면 최소한의 권한이 사용자에게 필요합니다. 이러한 권한이 있어야만 사용자가 자신의 AWS 계정에서 사용할 Neptune 리소스를 설명하고, Amazon EC2 보안 및 네트워크 정보를 포함하는 다른 관련 정보를 제공할 수 있습니다.

최소 필수 권한보다 더 제한적인 IAM 정책을 만들면 콘솔은 해당 IAM 정책에 연결된 사용자에 대해 의도대로 작동하지 않습니다. 사용자가 Neptune 콘솔을 사용할 수 있도록 하려면 `NeptuneReadOnlyAccess` 관리형 정책을 사용자에게 연결합니다([AWS 관리형 정책을 사용하여 Amazon Neptune 데이터베이스 액세스](security-iam-access-managed-policies.md) 참조).

 AWS CLI 또는 Amazon Neptune API만 호출하는 사용자에게는 최소 콘솔 권한을 허용할 필요가 없습니다.

## IAM 정책을 IAM 사용자에게 연결
<a name="iam-auth-policy-attaching"></a>

관리형 정책 또는 사용자 지정 정책을 적용하려면 IAM 사용자에게 연결합니다. 이번 주제에 대한 자습서는 *IAM 사용자 안내서*의 [첫 번째 고객 관리형 정책 생성 및 연결](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_managed-policies.html)을 참조하세요.

자습서를 읽어보면 이번 단원에서 소개하는 정책 예제 중 한 가지를 출발점으로 자신만의 요건에 따라 지정하여 사용할 수 있습니다. 자습서를 끝까지 따르다 보면 연결된 정책을 통해 `neptune-db:*` 작업이 가능한 IAM 사용자를 얻게 됩니다.

**중요**  
IAM 정책에 대한 변경 사항을 지정된 Neptune 리소스에 적용하는 데 최대 10분이 소요됩니다.
Neptune DB 클러스터에 적용되는 IAM 정책은 해당 클러스터의 모든 인스턴스에 적용됩니다.

## Neptune에 대한 액세스를 제어하는 데 다양한 종류의 IAM 정책 사용
<a name="iam-auth-policy"></a>

Neptune 관리 작업 또는 Neptune DB 클러스터의 데이터에 대한 액세스를 제공하려면 정책을 IAM 사용자 또는 역할에 연결합니다. IAM 정책을 사용자에게 연결하는 방법에 대한 자세한 내용은 [IAM 정책을 IAM 사용자에게 연결](#iam-auth-policy-attaching)을 참조하세요. 역할에 정책을 연결하는 방법에 대한 자세한 내용은 *IAM 사용 설명서*의 [IAM 정책 추가 및 제거](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)를 참조하세요.

Neptune에 대한 일반 액세스의 경우 Neptune의 [관리형 정책](security-iam-access-managed-policies.md) 중 하나를 사용할 수 있습니다. 액세스를 추가로 제한하려면 Neptune이 지원하는 [관리 작업](neptune-iam-admin-actions.md) 및 [리소스](iam-admin-resources.md)를 사용하여 사용자 지정 정책을 만들 수 있습니다.

사용자 지정 IAM 정책에서는 Neptune DB 클러스터에 대한 다양한 액세스 모드를 제어하는 두 종류의 정책문을 사용할 수 있습니다.
+ [관리 정책문](iam-admin-policies.md)   –   관리 정책문은 DB 클러스터와 해당 인스턴스를 생성, 구성 및 관리하는 데 사용하는 [Neptune 관리 API](api.md)에 대한 액세스를 제공합니다.

  Neptune은 Amazon RDS와 기능을 공유하므로, Neptune 정책의 관리 작업, 리소스 및 조건 키는 설계상 `rds:` 접두사를 사용합니다.
+ [데이터 액세스 정책문](iam-data-access-policies.md)   –   데이터 액세스 정책문은 [데이터 액세스 작업](iam-dp-actions.md), [리소스](iam-data-resources.md) 및 [조건 키](iam-data-condition-keys.md#iam-neptune-condition-keys)를 사용하여 DB 클러스터에 포함된 데이터에 대한 액세스를 제어합니다.

  Neptune 데이터 액세스 작업, 리소스 및 조건 키는 `neptune-db:` 접두사를 사용합니다.

## Amazon Neptune에서 IAM 조건 컨텍스트 키 사용
<a name="iam-using-condition-keys"></a>

Neptune에 대한 액세스를 제어하는 IAM 정책문에 조건을 지정할 수 있습니다. 이 정책문은 조건이 true일 때만 유효합니다.

예를 들어, 특정 날짜 이후에만 정책문이 적용되기를 원하거나 요청에 특정 값이 있는 경우에만 액세스를 허용하기를 원할 수 있습니다.

조건을 표시하려면 같음, 미만 등 [IAM 조건 정책 연산자](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html)와 함께 정책문의 [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) 요소에서 미리 정의된 조건 키를 사용합니다.

한 문에서 여러 `Condition` 요소를 지정하거나 단일 `Condition` 요소에서 여러 키를 지정하는 경우, AWS 는 논리적 `AND` 작업을 사용하여 평가합니다. 단일 조건 키에 여러 값을 지정하는 경우는 논리적 `OR` 작업을 사용하여 조건을 AWS 평가합니다. 문의 권한을 부여하기 전에 모든 조건을 충족해야 합니다.

 조건을 지정할 때 자리 표시자 변수를 사용할 수도 있습니다. 예를 들어, IAM 사용자에게 IAM 사용자 이름으로 태그가 지정된 경우에만 리소스에 액세스할 수 있는 권한을 부여할 수 있습니다. 자세한 정보는 *IAM 사용 설명서*의 [IAM 정책 요소: 변수 및 태그](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html)를 참조하세요.

조건 키의 데이터 유형은 요청의 값을 정책문의 값과 비교하는 데 사용할 수 있는 조건 연산자를 결정합니다. 해당 데이터 유형과 호환되지 않는 조건 연산자를 사용하면 매치가 항상 실패하고 정책문이 적용되지 않습니다.

Neptune은 관리 정책문에 대해 데이터 액세스 정책문과 다른 조건 키 세트를 지원합니다.
+ [관리 정책문의 조건 키](iam-admin-condition-keys.md)
+ [데이터 액세스 정책문의 조건 키](iam-data-condition-keys.md#iam-neptune-condition-keys)

## Amazon Neptune의 IAM 정책 및 액세스 제어 기능에 대한 지원
<a name="neptune-iam-policy-support"></a>

다음 표에는 Neptune이 관리 정책문 및 데이터 액세스 정책문에 지원하는 IAM 기능이 나와 있습니다.


**Neptune을 통해 사용할 수 있는 IAM 기능**  

| IAM 특성 | 관리 | 데이터 액세스 | 
| --- | --- | --- | 
| [자격 증명 기반 정책](#security_iam_access-manage-id-based-policies) | 예 | 예 | 
| [리소스 기반 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html) | 아니요 | 아니요 | 
| [정책 작업](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_action.html) | 예 | 예 | 
| [정책 리소스](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_resource.html) | 예 | 예 | 
| [전역 조건 키](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) | 예 | (하위 세트) | 
| [태그 기반 조건 키](iam-admin-condition-keys.md#iam-rds-tag-based-condition-keys) | 예 | 아니요 | 
| [액세스 제어 목록(ACL)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acls.html) | 아니요 | 아니요 | 
| [서비스 제어 정책(SCP)](#security_iam_access-manage-scp) | 예 | 예 | 
| [서비스 연결 역할](security-iam-service-linked-roles.md) | 예 | 아니요 | 

## IAM 정책 제한
<a name="iam-policy-limits"></a>

IAM 정책에 대한 변경 사항을 지정된 Neptune 리소스에 적용하는 데 최대 10분이 소요됩니다.

Neptune DB 클러스터에 적용되는 IAM 정책은 해당 클러스터의 모든 인스턴스에 적용됩니다.

Neptune은 현재 데이터 플레인 수준에서 교차 계정 액세스 제어를 지원하지 않습니다. 교차 계정 액세스 제어는 대량 로드 및 역할 체인을 사용할 때만 지원됩니다. 자세한 내용은 [대량 로드 튜토리얼](https://docs.aws.amazon.com//neptune/latest/userguide/bulk-load-tutorial-chain-roles.html#bulk-load-tutorial-chain-cross-account)을 참조하세요.

# AWS 관리형 정책을 사용하여 Amazon Neptune 데이터베이스 액세스
<a name="security-iam-access-managed-policies"></a>

AWS 는에서 생성하고 관리하는 독립 실행형 IAM 정책을 제공하여 많은 일반적인 사용 사례를 처리합니다 AWS. 관리형 정책은 필요한 권한을 사용자가 조사할 필요가 없도록 일반 사용 사례에 필요한 권한을 부여합니다. 자세한 내용은 *IAM 사용자 안내서*의 [AWS 관리형 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)을 참조하세요.

계정의 사용자에게 연결할 수 있는 다음 AWS 관리형 정책은 Amazon Neptune 관리 APIs
+ **[NeptuneReadOnlyAccess](read-only-access-iam-managed-policy.md)** - 루트 AWS 계정의 관리 및 데이터 액세스 목적으로 모든 Neptune 리소스에 대한 읽기 전용 액세스 권한을 부여합니다.
+ **[NeptuneFullAccess](full-access-iam-managed-policy.md)** - 루트 AWS 계정의 관리 및 데이터 액세스 목적으로 모든 Neptune 리소스에 대한 전체 액세스 권한을 부여합니다. 이는 AWS CLI 또는 SDK에서 전체 Neptune 액세스가 필요하지만 AWS Management Console 액세스에는 필요하지 않은 경우에 권장됩니다.
+ **[NeptuneConsoleFullAccess](console-full-access-iam-managed-policy.md)** - 루트 AWS 계정의 모든 액세스 권한을 모든 Neptune 관리 작업 및 리소스에 부여하지만 데이터 액세스 작업 또는 리소스에는 부여하지 않습니다. 또한 제한된 IAM 및 Amazon EC2(VPC) 권한을 비롯하여 콘솔에서 Neptune 액세스를 단순화하기 위한 추가 권한도 포함되어 있습니다.
+ **[NeptuneGraphReadOnlyAccess ](graph-read-only-access-iam-managed-policy.md)** - 종속 서비스에 대한 읽기 전용 권한과 함께 모든 Amazon Neptune Analytics 리소스에 대한 읽기 전용 액세스를 제공합니다.
+ **[AWSServiceRoleForNeptuneGraphPolicy](aws-service-role-for-neptune-graph-policy.md)** - Neptune Analytics 그래프가 CloudWatch 운영 및 사용량 지표와 로그를 게시할 수 있도록 합니다.

Neptune는 운영 기술을 특정 관리 기능에 대한 Amazon RDS와 공유하므로, Neptune IAM 역할 및 정책이 Amazon RDS 리소스에 대한 일부 액세스 권한을 부여합니다. 여기에는 관리 API 권한이 포함되므로, Neptune 관리 작업에 `rds:` 접두사가 붙습니다.

## Neptune AWS 관리형 정책 업데이트
<a name="neptune-managed-policy-updates"></a>

다음 표는 Neptune이 변경 사항을 추적하기 시작한 시점부터 시작된 Neptune 관리형 정책의 업데이트가 나와 있습니다.


| 정책 | 설명 | Date | 
| --- | --- | --- | 
| AWS Amazon Neptune에 대한 관리형 정책 - 기존 정책 업데이트 | `NeptuneReadOnlyAcess` 및 `NeptuneFullAccess` 관리형 정책에서 이제 정책 문에 `Sid`(문 ID)를 식별자로 포함합니다. | 2024-01-22 | 
| [NeptuneGraphReadOnlyAccess](read-only-access-iam-managed-policy.md)(릴리스됨) | Neptune Analytics 그래프 및 리소스에 대한 읽기 전용 액세스를 제공하도록 릴리스되었습니다. | 2023-11-29 | 
| [AWSServiceRoleForNeptuneGraphPolicy](aws-service-role-for-neptune-graph-policy.md)(릴리스됨) | Neptune Analytics 그래프가 CloudWatch에 액세스하여 운영 및 사용량 지표와 로그를 게시할 수 있도록 릴리스되었습니다. [Neptune Analytics에서 서비스 연결 역할(SLR) 사용](https://docs.aws.amazon.com/neptune-analytics/latest/userguide/nan-service-linked-roles.html)을 참조하세요. | 2023-11-29 | 
| [NeptuneConsoleFullAccess](console-full-access-iam-managed-policy.md)(권한 추가) | 추가된 권한은 Neptune Analytics 그래프와 상호 작용하는 데 필요한 모든 액세스를 제공합니다. | 2023년 11월 29일 | 
| [NeptuneFullAccess](full-access-iam-managed-policy.md)(권한 추가) | 새 글로벌 데이터베이스 API에 대한 데이터 액세스 권한 및 사용 권한을 추가했습니다. | 2022-07-28 | 
| [NeptuneConsoleFullAccess](console-full-access-iam-managed-policy.md)(권한 추가) | 새 글로벌 데이터베이스 API에 대한 권한이 추가되었습니다. | 2022-07-21 | 
| Neptune이 변경 사항 추적을 시작함 | Neptune은 AWS 관리형 정책에 대한 변경 사항을 추적하기 시작했습니다. | 2022-07-21 | 

# AWS 관리`NeptuneReadOnlyAccess`형 정책을 사용하여 Amazon Neptune 데이터베이스에 권한 부여
<a name="read-only-access-iam-managed-policy"></a>

아래의 [NeptuneReadOnlyAccess](https://console.aws.amazon.com/iam/home#policies/NeptuneReadOnlyAccess) 관리형 정책은 관리 목적과 데이터 액세스 목적 모두에 대해 모든 Neptune 작업 및 리소스에 대한 읽기 전용 액세스 권한을 부여합니다.

**참고**  
이 정책은 읽기 전용 데이터 액세스 권한과 읽기 전용 관리 권한을 포함하고 글로벌 데이터베이스 작업에 대한 권한을 포함하도록 2022-07-21에 업데이트되었습니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowReadOnlyPermissionsForRDS",
            "Effect": "Allow",
            "Action": [
                "rds:DescribeAccountAttributes",
                "rds:DescribeCertificates",
                "rds:DescribeDBClusterParameterGroups",
                "rds:DescribeDBClusterParameters",
                "rds:DescribeDBClusterSnapshotAttributes",
                "rds:DescribeDBClusterSnapshots",
                "rds:DescribeDBClusters",
                "rds:DescribeDBEngineVersions",
                "rds:DescribeDBInstances",
                "rds:DescribeDBLogFiles",
                "rds:DescribeDBParameterGroups",
                "rds:DescribeDBParameters",
                "rds:DescribeDBSubnetGroups",
                "rds:DescribeEventCategories",
                "rds:DescribeEventSubscriptions",
                "rds:DescribeEvents",
                "rds:DescribeGlobalClusters",
                "rds:DescribeOrderableDBInstanceOptions",
                "rds:DescribePendingMaintenanceActions",
                "rds:DownloadDBLogFilePortion",
                "rds:ListTagsForResource"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowReadOnlyPermissionsForCloudwatch",
            "Effect": "Allow",
            "Action": [
                "cloudwatch:GetMetricStatistics",
                "cloudwatch:ListMetrics"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowReadOnlyPermissionsForEC2",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeAccountAttributes",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeInternetGateways",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSubnets",
                "ec2:DescribeVpcAttribute",
                "ec2:DescribeVpcs"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowReadOnlyPermissionsForKMS",
            "Effect": "Allow",
            "Action": [
                "kms:ListKeys",
                "kms:ListRetirableGrants",
                "kms:ListAliases",
                "kms:ListKeyPolicies"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowReadOnlyPermissionsForLogs",
            "Effect": "Allow",
            "Action": [
                "logs:DescribeLogStreams",
                "logs:GetLogEvents"
            ],
            "Resource": [
                "arn:aws:logs:*:*:log-group:/aws/rds/*:log-stream:*",
                "arn:aws:logs:*:*:log-group:/aws/neptune/*:log-stream:*"
            ]
        },
        {
            "Sid": "AllowReadOnlyPermissionsForNeptuneDB",
            "Effect": "Allow",
            "Action": [
                "neptune-db:Read*",
                "neptune-db:Get*",
                "neptune-db:List*"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

------

# AWS 관리`NeptuneFullAccess`형 정책을 사용하여 Amazon Neptune 데이터베이스에 권한 부여
<a name="full-access-iam-managed-policy"></a>

아래의 [NeptuneFullAccess](https://console.aws.amazon.com/iam/home#policies/NeptuneFullAccess) 관리형 정책은 관리 목적과 데이터 액세스 목적 모두에 대해 모든 Neptune 작업 및 리소스에 대한 전체 액세스 권한을 부여합니다. AWS CLI 또는 SDK에서 전체 액세스 권한이 필요하지만 에서는 필요하지 않은 경우 권장됩니다 AWS Management Console.

**참고**  
이 정책은 전체 데이터 액세스 권한과 전체 관리 권한을 포함하고 글로벌 데이터베이스 작업에 대한 권한을 포함하도록 2022-07-21에 업데이트되었습니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowNeptuneCreate",
            "Effect": "Allow",
            "Action": [
                "rds:CreateDBCluster",
                "rds:CreateDBInstance"
            ],
            "Resource": [
                "arn:aws:rds:*:*:*"
            ],
            "Condition": {
                "StringEquals": {
                    "rds:DatabaseEngine": [
                        "graphdb",
                        "neptune"
                    ]
                }
            }
        },
        {
            "Sid": "AllowManagementPermissionsForRDS",
            "Effect": "Allow",
            "Action": [
                "rds:AddRoleToDBCluster",
                "rds:AddSourceIdentifierToSubscription",
                "rds:AddTagsToResource",
                "rds:ApplyPendingMaintenanceAction",
                "rds:CopyDBClusterParameterGroup",
                "rds:CopyDBClusterSnapshot",
                "rds:CopyDBParameterGroup",
                "rds:CreateDBClusterEndpoint",
                "rds:CreateDBClusterParameterGroup",
                "rds:CreateDBClusterSnapshot",
                "rds:CreateDBParameterGroup",
                "rds:CreateDBSubnetGroup",
                "rds:CreateEventSubscription",
                "rds:CreateGlobalCluster",
                "rds:DeleteDBCluster",
                "rds:DeleteDBClusterEndpoint",
                "rds:DeleteDBClusterParameterGroup",
                "rds:DeleteDBClusterSnapshot",
                "rds:DeleteDBInstance",
                "rds:DeleteDBParameterGroup",
                "rds:DeleteDBSubnetGroup",
                "rds:DeleteEventSubscription",
                "rds:DeleteGlobalCluster",
                "rds:DescribeDBClusterEndpoints",
                "rds:DescribeAccountAttributes",
                "rds:DescribeCertificates",
                "rds:DescribeDBClusterParameterGroups",
                "rds:DescribeDBClusterParameters",
                "rds:DescribeDBClusterSnapshotAttributes",
                "rds:DescribeDBClusterSnapshots",
                "rds:DescribeDBClusters",
                "rds:DescribeDBEngineVersions",
                "rds:DescribeDBInstances",
                "rds:DescribeDBLogFiles",
                "rds:DescribeDBParameterGroups",
                "rds:DescribeDBParameters",
                "rds:DescribeDBSecurityGroups",
                "rds:DescribeDBSubnetGroups",
                "rds:DescribeEngineDefaultClusterParameters",
                "rds:DescribeEngineDefaultParameters",
                "rds:DescribeEventCategories",
                "rds:DescribeEventSubscriptions",
                "rds:DescribeEvents",
                "rds:DescribeGlobalClusters",
                "rds:DescribeOptionGroups",
                "rds:DescribeOrderableDBInstanceOptions",
                "rds:DescribePendingMaintenanceActions",
                "rds:DescribeValidDBInstanceModifications",
                "rds:DownloadDBLogFilePortion",
                "rds:FailoverDBCluster",
                "rds:FailoverGlobalCluster",
                "rds:ListTagsForResource",
                "rds:ModifyDBCluster",
                "rds:ModifyDBClusterEndpoint",
                "rds:ModifyDBClusterParameterGroup",
                "rds:ModifyDBClusterSnapshotAttribute",
                "rds:ModifyDBInstance",
                "rds:ModifyDBParameterGroup",
                "rds:ModifyDBSubnetGroup",
                "rds:ModifyEventSubscription",
                "rds:ModifyGlobalCluster",
                "rds:PromoteReadReplicaDBCluster",
                "rds:RebootDBInstance",
                "rds:RemoveFromGlobalCluster",
                "rds:RemoveRoleFromDBCluster",
                "rds:RemoveSourceIdentifierFromSubscription",
                "rds:RemoveTagsFromResource",
                "rds:ResetDBClusterParameterGroup",
                "rds:ResetDBParameterGroup",
                "rds:RestoreDBClusterFromSnapshot",
                "rds:RestoreDBClusterToPointInTime",
                "rds:StartDBCluster",
                "rds:StopDBCluster"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Sid": "AllowOtherDepedentPermissions",
            "Effect": "Allow",
            "Action": [
                "cloudwatch:GetMetricStatistics",
                "cloudwatch:ListMetrics",
                "ec2:DescribeAccountAttributes",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSubnets",
                "ec2:DescribeVpcAttribute",
                "ec2:DescribeVpcs",
                "kms:ListAliases",
                "kms:ListKeyPolicies",
                "kms:ListKeys",
                "kms:ListRetirableGrants",
                "logs:DescribeLogStreams",
                "logs:GetLogEvents",
                "sns:ListSubscriptions",
                "sns:ListTopics",
                "sns:Publish"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Sid": "AllowPassRoleForNeptune",
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:passedToService": "rds.amazonaws.com"
                }
            }
        },
        {
            "Sid": "AllowCreateSLRForNeptune",
            "Effect": "Allow",
            "Action": "iam:CreateServiceLinkedRole",
            "Resource": "arn:aws:iam::*:role/aws-service-role/rds.amazonaws.com/AWSServiceRoleForRDS",
            "Condition": {
                "StringLike": {
                    "iam:AWSServiceName": "rds.amazonaws.com"
                }
            }
        },
        {
            "Sid": "AllowDataAccessForNeptune",
            "Effect": "Allow",
            "Action": [
                "neptune-db:*"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

------

# AWS 관리형 정책을 `NeptuneConsoleFullAccess` 사용하여 권한 부여
<a name="console-full-access-iam-managed-policy"></a>

아래의 [NeptuneConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/NeptuneConsoleFullAccess) 관리형 정책은 관리 목적으로만 모든 Neptune 작업 및 리소스에 대한 전체 액세스 권한을 부여하지만, 데이터 액세스 목적으로는 액세스 권한을 부여하지 않습니다. 또한 제한된 IAM 및 Amazon EC2(VPC) 권한을 비롯하여 콘솔에서 Neptune 액세스를 단순화하기 위한 추가 권한도 포함되어 있습니다.

**참고**  
이 정책은 Neptune Analytics 그래프와 상호 작용하는 데 필요한 권한을 포함하도록 2023년 11월 29일에 업데이트되었습니다.  
글로벌 데이터베이스 작업에 대한 권한을 포함하도록 2022년 7월 21일에 업데이트되었습니다.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowNeptuneCreate",
      "Effect": "Allow",
      "Action": [
        "rds:CreateDBCluster",
        "rds:CreateDBInstance"
      ],
      "Resource": [
        "arn:aws:rds:*:*:*"
      ],
      "Condition": {
        "StringEquals": {
          "rds:DatabaseEngine": [
            "graphdb",
            "neptune"
          ]
        }
      }
    },
    {
      "Sid": "AllowManagementPermissionsForRDS",
      "Action": [
        "rds:AddRoleToDBCluster",
        "rds:AddSourceIdentifierToSubscription",
        "rds:AddTagsToResource",
        "rds:ApplyPendingMaintenanceAction",
        "rds:CopyDBClusterParameterGroup",
        "rds:CopyDBClusterSnapshot",
        "rds:CopyDBParameterGroup",
        "rds:CreateDBClusterParameterGroup",
        "rds:CreateDBClusterSnapshot",
        "rds:CreateDBParameterGroup",
        "rds:CreateDBSubnetGroup",
        "rds:CreateEventSubscription",
        "rds:DeleteDBCluster",
        "rds:DeleteDBClusterParameterGroup",
        "rds:DeleteDBClusterSnapshot",
        "rds:DeleteDBInstance",
        "rds:DeleteDBParameterGroup",
        "rds:DeleteDBSubnetGroup",
        "rds:DeleteEventSubscription",
        "rds:DescribeAccountAttributes",
        "rds:DescribeCertificates",
        "rds:DescribeDBClusterParameterGroups",
        "rds:DescribeDBClusterParameters",
        "rds:DescribeDBClusterSnapshotAttributes",
        "rds:DescribeDBClusterSnapshots",
        "rds:DescribeDBClusters",
        "rds:DescribeDBEngineVersions",
        "rds:DescribeDBInstances",
        "rds:DescribeDBLogFiles",
        "rds:DescribeDBParameterGroups",
        "rds:DescribeDBParameters",
        "rds:DescribeDBSecurityGroups",
        "rds:DescribeDBSubnetGroups",
        "rds:DescribeEngineDefaultClusterParameters",
        "rds:DescribeEngineDefaultParameters",
        "rds:DescribeEventCategories",
        "rds:DescribeEventSubscriptions",
        "rds:DescribeEvents",
        "rds:DescribeOptionGroups",
        "rds:DescribeOrderableDBInstanceOptions",
        "rds:DescribePendingMaintenanceActions",
        "rds:DescribeValidDBInstanceModifications",
        "rds:DownloadDBLogFilePortion",
        "rds:FailoverDBCluster",
        "rds:ListTagsForResource",
        "rds:ModifyDBCluster",
        "rds:ModifyDBClusterParameterGroup",
        "rds:ModifyDBClusterSnapshotAttribute",
        "rds:ModifyDBInstance",
        "rds:ModifyDBParameterGroup",
        "rds:ModifyDBSubnetGroup",
        "rds:ModifyEventSubscription",
        "rds:PromoteReadReplicaDBCluster",
        "rds:RebootDBInstance",
        "rds:RemoveRoleFromDBCluster",
        "rds:RemoveSourceIdentifierFromSubscription",
        "rds:RemoveTagsFromResource",
        "rds:ResetDBClusterParameterGroup",
        "rds:ResetDBParameterGroup",
        "rds:RestoreDBClusterFromSnapshot",
        "rds:RestoreDBClusterToPointInTime"
      ],
      "Effect": "Allow",
      "Resource": [
        "*"
      ]
    },
    {
      "Sid": "AllowOtherDepedentPermissions",
      "Action": [
        "cloudwatch:GetMetricStatistics",
        "cloudwatch:ListMetrics",
        "ec2:AllocateAddress",
        "ec2:AssignIpv6Addresses",
        "ec2:AssignPrivateIpAddresses",
        "ec2:AssociateAddress",
        "ec2:AssociateRouteTable",
        "ec2:AssociateSubnetCidrBlock",
        "ec2:AssociateVpcCidrBlock",
        "ec2:AttachInternetGateway",
        "ec2:AttachNetworkInterface",
        "ec2:CreateCustomerGateway",
        "ec2:CreateDefaultSubnet",
        "ec2:CreateDefaultVpc",
        "ec2:CreateInternetGateway",
        "ec2:CreateNatGateway",
        "ec2:CreateNetworkInterface",
        "ec2:CreateRoute",
        "ec2:CreateRouteTable",
        "ec2:CreateSecurityGroup",
        "ec2:CreateSubnet",
        "ec2:CreateVpc",
        "ec2:CreateVpcEndpoint",
        "ec2:CreateVpcEndpoint",
        "ec2:DescribeAccountAttributes",
        "ec2:DescribeAccountAttributes",
        "ec2:DescribeAddresses",
        "ec2:DescribeAvailabilityZones",
        "ec2:DescribeAvailabilityZones",
        "ec2:DescribeCustomerGateways",
        "ec2:DescribeInstances",
        "ec2:DescribeNatGateways",
        "ec2:DescribeNetworkInterfaces",
        "ec2:DescribePrefixLists",
        "ec2:DescribeRouteTables",
        "ec2:DescribeSecurityGroupReferences",
        "ec2:DescribeSecurityGroups",
        "ec2:DescribeSecurityGroups",
        "ec2:DescribeSubnets",
        "ec2:DescribeSubnets",
        "ec2:DescribeVpcAttribute",
        "ec2:DescribeVpcAttribute",
        "ec2:DescribeVpcEndpoints",
        "ec2:DescribeVpcs",
        "ec2:DescribeVpcs",
        "ec2:ModifyNetworkInterfaceAttribute",
        "ec2:ModifySubnetAttribute",
        "ec2:ModifyVpcAttribute",
        "ec2:ModifyVpcEndpoint",
        "iam:ListRoles",
        "kms:ListAliases",
        "kms:ListKeyPolicies",
        "kms:ListKeys",
        "kms:ListRetirableGrants",
        "logs:DescribeLogStreams",
        "logs:GetLogEvents",
        "sns:ListSubscriptions",
        "sns:ListTopics",
        "sns:Publish"
      ],
      "Effect": "Allow",
      "Resource": [
        "*"
      ]
    },
    {
      "Sid": "AllowPassRoleForNeptune",
      "Action": "iam:PassRole",
      "Effect": "Allow",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "iam:passedToService": "rds.amazonaws.com"
        }
      }
    },
    {
      "Sid": "AllowCreateSLRForNeptune",
      "Action": "iam:CreateServiceLinkedRole",
      "Effect": "Allow",
      "Resource": "arn:aws:iam::*:role/aws-service-role/rds.amazonaws.com/AWSServiceRoleForRDS",
      "Condition": {
        "StringLike": {
          "iam:AWSServiceName": "rds.amazonaws.com"
        }
      }
    },
    {
      "Sid": "AllowManagementPermissionsForNeptuneAnalytics",
      "Effect": "Allow",
      "Action": [
        "neptune-graph:CreateGraph",
        "neptune-graph:DeleteGraph",
        "neptune-graph:GetGraph",
        "neptune-graph:ListGraphs",
        "neptune-graph:UpdateGraph",
        "neptune-graph:ResetGraph",
        "neptune-graph:CreateGraphSnapshot",
        "neptune-graph:DeleteGraphSnapshot",
        "neptune-graph:GetGraphSnapshot",
        "neptune-graph:ListGraphSnapshots",
        "neptune-graph:RestoreGraphFromSnapshot",
        "neptune-graph:CreatePrivateGraphEndpoint",
        "neptune-graph:GetPrivateGraphEndpoint",
        "neptune-graph:ListPrivateGraphEndpoints",
        "neptune-graph:DeletePrivateGraphEndpoint",
        "neptune-graph:CreateGraphUsingImportTask",
        "neptune-graph:GetImportTask",
        "neptune-graph:ListImportTasks",
        "neptune-graph:CancelImportTask"
      ],
      "Resource": [
        "arn:aws:neptune-graph:*:*:*"
      ]
    },
    {
      "Sid": "AllowPassRoleForNeptuneAnalytics",
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "iam:passedToService": "neptune-graph.amazonaws.com"
        }
      }
    },
    {
      "Sid": "AllowCreateSLRForNeptuneAnalytics",
      "Effect": "Allow",
      "Action": "iam:CreateServiceLinkedRole",
      "Resource": "arn:aws:iam::*:role/aws-service-role/neptune-graph.amazonaws.com/AWSServiceRoleForNeptuneGraph",
      "Condition": {
        "StringLike": {
          "iam:AWSServiceName": "neptune-graph.amazonaws.com"
        }
      }
    }
  ]
}
```

------

# AWS 관리형 정책을 `NeptuneGraphReadOnlyAccess` 사용하여 권한 부여
<a name="graph-read-only-access-iam-managed-policy"></a>

아래의 [NeptuneGraphReadOnlyAccess](https://console.aws.amazon.com/iam/home#policies/NeptuneGraphReadOnlyAccess) 관리형 정책은 종속 서비스에 대한 읽기 전용 권한과 함께 모든 Amazon Neptune Analytics 리소스에 대한 읽기 전용 액세스를 제공합니다.

이 정책에는 다음을 할 수 있는 권한이 포함되어 있습니다.
+ **Amazon EC2** - VPC, 서브넷, 보안 그룹 및 가용 영역에 대한 정보를 검색합니다.
+ **의 경우 AWS KMS** - KMS 키 및 별칭에 대한 정보를 검색합니다.
+ **CloudWatch** – CloudWatch 지표에 대한 정보를 검색합니다.
+ **CloudWatch Logs** - CloudWatch 로그 스트림 및 이벤트에 대한 정보를 검색합니다.

**참고**  
이 정책은 2023년 11월 29일에 릴리스되었습니다.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowReadOnlyPermissionsForNeptuneGraph",
      "Effect": "Allow",
      "Action": [
        "neptune-graph:Get*",
        "neptune-graph:List*",
        "neptune-graph:Read*"
      ],
      "Resource": "*"
    },
    {
      "Sid": "AllowReadOnlyPermissionsForEC2",
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeVpcEndpoints",
        "ec2:DescribeVpcAttribute",
        "ec2:DescribeSecurityGroups",
        "ec2:DescribeSubnets",
        "ec2:DescribeVpcs",
        "ec2:DescribeAvailabilityZones"
      ],
      "Resource": "*"
    },
    {
      "Sid": "AllowReadOnlyPermissionsForKMS",
      "Effect": "Allow",
      "Action": [
        "kms:ListKeys",
        "kms:ListAliases"
      ],
      "Resource": "*"
    },
    {
      "Sid": "AllowReadOnlyPermissionsForCloudwatch",
      "Effect": "Allow",
      "Action": [
        "cloudwatch:GetMetricData",
        "cloudwatch:ListMetrics",
        "cloudwatch:GetMetricStatistics"
      ],
      "Resource": "*"
    },
    {
      "Sid": "AllowReadOnlyPermissionsForLogs",
      "Effect": "Allow",
      "Action": [
        "logs:DescribeLogStreams",
        "logs:GetLogEvents"
      ],
      "Resource": [
        "arn:aws:logs:*:*:log-group:/aws/neptune/*:log-stream:*"
      ]
    }
  ]
}
```

------

# `AWSServiceRoleForNeptuneGraphPolicy`를 사용하여 Neptune 그래프에 대한 액세스 권한 부여
<a name="aws-service-role-for-neptune-graph-policy"></a>

아래의 [AWSServiceRoleForNeptuneGraphPolicy](https://console.aws.amazon.com/iam/home#policies/AWSServiceRoleForNeptuneGraphPolicy) 관리형 정책은 그래프에 CloudWatch에 대한 액세스를 제공하여 운영 및 사용량 지표와 로그를 게시할 수 있도록 합니다. [nan-service-linked-roles](https://docs.aws.amazon.com/neptune-analytics/latest/userguide/nan-service-linked-roles.html)를 참조하세요.

**참고**  
이 정책은 2023년 11월 29일에 릴리스되었습니다.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "GraphMetrics",
      "Effect": "Allow",
      "Action": [
        "cloudwatch:PutMetricData"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "cloudwatch:namespace": [
            "AWS/Neptune",
            "AWS/Usage"
          ]
        }
      }
    },
    {
      "Sid": "GraphLogGroup",
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup"
      ],
      "Resource": [
        "arn:aws:logs:*:*:log-group:/aws/neptune/*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:ResourceAccount": "${aws:PrincipalAccount}"
        }
      }
    },
    {
      "Sid": "GraphLogEvents",
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogStream",
        "logs:PutLogEvents",
        "logs:DescribeLogStreams"
      ],
      "Resource": [
        "arn:aws:logs:*:*:log-group:/aws/neptune/*:log-stream:*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:ResourceAccount": "${aws:PrincipalAccount}"
        }
      }
    }
  ]
}
```

------



# IAM 조건 컨텍스트 키를 사용하여 Amazon Neptune 리소스에 대한 액세스 사용자 지정
<a name="iam-condition-keys"></a>

IAM 정책에서 Neptune 관리 작업 및 리소스에 대한 액세스를 제어하는 조건을 지정할 수 있습니다. 이 정책문은 조건이 true일 때만 유효합니다.

예를 들어, 특정 날짜 이후에만 정책문이 적용되기를 원하거나 API 요청에 특정 값이 있는 경우에만 액세스를 허용하기를 원할 수 있습니다.

조건을 표시하려면 같음, 미만 등 [IAM 조건 정책 연산자](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html)와 함께 정책문의 [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) 요소에서 미리 정의된 조건 키를 사용합니다.

한 문에서 여러 `Condition` 요소를 지정하거나 단일 `Condition` 요소에서 여러 키를 지정하는 경우, AWS 는 논리적 `AND` 작업을 사용하여 평가합니다. 단일 조건 키에 여러 값을 지정하는 경우는 논리적 `OR` 작업을 사용하여 조건을 AWS 평가합니다. 문의 권한을 부여하기 전에 모든 조건을 충족해야 합니다.

 조건을 지정할 때 자리 표시자 변수를 사용할 수도 있습니다. 예를 들어, IAM 사용자에게 IAM 사용자 이름으로 태그가 지정된 경우에만 리소스에 액세스할 수 있는 권한을 부여할 수 있습니다. 자세한 정보는 *IAM 사용 설명서*의 [IAM 정책 요소: 변수 및 태그](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html)를 참조하세요.

조건 키의 데이터 유형은 요청의 값을 정책문의 값과 비교하는 데 사용할 수 있는 조건 연산자를 결정합니다. 해당 데이터 유형과 호환되지 않는 조건 연산자를 사용하면 매치가 항상 실패하고 정책문이 적용되지 않습니다.

**Neptune 관리 정책문에 대한 IAM 조건 키**
+ [전역 조건 키](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)   - Neptune 관리 정책 설명에서 대부분의 AWS 전역 조건 키를 사용할   수 있습니다.
+ [서비스별 조건 키 -](iam-admin-condition-keys.md) 특정 AWS 서비스에 대해 정의된   키입니다.   Neptune이 관리 정책문을 지원하는 항목은 [Amazon Neptune 관리를 위한 IAM 조건 키](iam-admin-condition-keys.md)에 나열되어 있습니다.

**Neptune 데이터 액세스 정책문에 대한 IAM 조건 키**
+ [글로벌 조건 키](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)   –   [AWS 데이터 액세스 정책 설명에서 Neptune이 지원하는 전역 조건 컨텍스트 키](iam-data-condition-keys.md#iam-data-global-condition-keys)에 Neptune이 데이터 액세스 정책문에서 지원하는 이러한 키의 하위 세트가 나열되어 있습니다.
+ Neptune이 데이터 액세스 정책문에 대해 정의하는 서비스별 조건 키는 [조건 키](iam-data-condition-keys.md)에 나열되어 있습니다.

# Amazon Neptune 관리를 위한 사용자 지정 IAM 정책문 생성
<a name="iam-admin-policies"></a>

관리 정책문을 통해 IAM 사용자가 Neptune 데이터베이스를 관리하기 위해 수행할 수 있는 작업을 제어할 수 있습니다.

Neptune 관리 관리 정책문은 Neptune이 지원하는 하나 이상의 [관리 작업](neptune-iam-admin-actions.md) 및 [관리 리소스](iam-admin-resources.md)에 대한 액세스 권한을 부여합니다. [조건 키](iam-admin-condition-keys.md)를 사용하여 관리 권한을 보다 구체적으로 지정할 수도 있습니다.

**참고**  
Neptune은 Amazon RDS와 기능을 공유하므로, 관리 정책문의 관리 작업, 리소스 및 서비스별 조건 키는 설계상 `rds:` 접두사를 사용합니다.

**Topics**
+ [Amazon Neptune 관리를 위한 IAM 작업](neptune-iam-admin-actions.md)
+ [Amazon Neptune 관리를 위한 IAM 리소스 유형](iam-admin-resources.md)
+ [Amazon Neptune 관리를 위한 IAM 조건 키](iam-admin-condition-keys.md)
+ [Amazon Neptune을 위한 IAM 관리 정책문 생성](iam-admin-policy-examples.md)

# Amazon Neptune 관리를 위한 IAM 작업
<a name="neptune-iam-admin-actions"></a>

IAM 정책문의 `Action` 요소에 아래 나열된 관리 작업을 사용하여 [Neptune 관리 API](api.md)에 대한 액세스를 제어할 수 있습니다. 정책에서 작업을 사용하면 일반적으로 이름이 같은 API 작업 또는 CLI 명령에 대한 액세스를 허용하거나 거부합니다. 그러나 경우에 따라 하나의 작업으로 둘 이상의 작업에 대한 액세스가 제어됩니다. 또는 일부 작업을 수행하려면 다양한 작업이 필요합니다.

아래 목록의 `Resource type` 필드는 각 작업이 리소스 수준 권한을 지원하는지 여부를 나타냅니다. 이 필드에 값이 없으면 정책문의 `Resource` 요소에서 모든 리소스("\$1")를 지정해야 합니다. 열에 리소스 유형이 포함되어 있으면 해당 작업 시 문에서 해당 유형의 리소스 ARN을 지정할 수 있습니다. Neptune 관리 리소스 유형은 [이 페이지](iam-admin-resources.md)에 나열되어 있습니다.

필수 리소스는 아래 목록에 별표(\$1)로 표시됩니다. 이 작업을 사용해 문에서 리소스 레벨 권한 ARN을 지정할 경우 이 유형이 되어야 합니다. 일부 작업은 다수의 리소스 유형을 지원합니다. 리소스 유형이 선택 사항인 경우, 즉 별표가 표시되지 않은 경우에는 포함하지 않아도 됩니다.

여기에 나열된 필드에 대한 자세한 내용은 [IAM 사용 설명서](https://docs.aws.amazon.com/IAM/latest/UserGuide/)의 [작업 표](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_actions-resources-contextkeys.html#actions_table)를 참조하세요.

## rds:AddRoleToDBCluster
<a name="neptune-iam-admin-actions-AddRoleToDBCluster"></a>

`AddRoleToDBCluster`는 IAM 역할을 Neptune DB 클러스터와 연결합니다.

*액세스 수준:* `Write`.

*종속 작업:* `iam:PassRole`.

*리소스 유형:* [cluster](iam-admin-resources.md#neptune-cluster-resource)(필수).

## rds:AddSourceIdentifierToSubscription
<a name="neptune-iam-admin-actions-AddSourceIdentifierToSubscription"></a>

`AddSourceIdentifierToSubscription`는 기존의 Neptune 이벤트 알림 구독에 소스 식별자를 추가합니다.

*액세스 수준:* `Write`.

*리소스 유형:* [es](iam-admin-resources.md#neptune-es-resource)(필수).

## rds:AddTagsToResource
<a name="neptune-iam-admin-actions-AddTagsToResource"></a>

`AddTagsToResource`는 IAM 역할을 Neptune DB 클러스터와 연결합니다.

*액세스 수준:* `Write`.

*리소스 유형:*
+ [db](iam-admin-resources.md#neptune-db-resource)
+ [es](iam-admin-resources.md#neptune-es-resource)
+ [pg](iam-admin-resources.md#neptune-pg-resource)
+ [cluster-snapshot](iam-admin-resources.md#neptune-cluster-snapshot-resource)
+ [subgrp](iam-admin-resources.md#neptune-subgrp-resource)

*조건 키:*
+ [aws:RequestTag/*tag-key*](iam-admin-condition-keys.md#admin-aws_RequestTag)
+ [aws:TagKeys](iam-admin-condition-keys.md#admin-aws_TagKeys)

## rds:ApplyPendingMaintenanceAction
<a name="neptune-iam-admin-actions-ApplyPendingMaintenanceAction"></a>

`ApplyPendingMaintenanceAction`는 대기 중인 유지 관리 작업을 리소스에 적용합니다.

*액세스 수준:* `Write`.

*리소스 유형:* [db](iam-admin-resources.md#neptune-db-resource)(필수).

## rds:CopyDBClusterParameterGroup
<a name="neptune-iam-admin-actions-CopyDBClusterParameterGroup"></a>

`CopyDBClusterParameterGroup`는 지정된 DB 클러스터 파라미터 그룹을 복사합니다.

*액세스 수준:* `Write`.

*리소스 유형:* [cluster-pg](iam-admin-resources.md#neptune-cluster-pg-resource)(필수).

## rds:CopyDBClusterSnapshot
<a name="neptune-iam-admin-actions-CopyDBClusterSnapshot"></a>

`CopyDBClusterSnapshot`는 DB 클러스터의 스냅샷을 복사합니다.

*액세스 수준:* `Write`.

*리소스 유형:* [cluster-snapshot](iam-admin-resources.md#neptune-cluster-snapshot-resource)(필수).

## rds:CopyDBParameterGroup
<a name="neptune-iam-admin-actions-CopyDBParameterGroup"></a>

`CopyDBParameterGroup`은 지정된 DB 파라미터 그룹을 복사합니다.

*액세스 수준:* `Write`.

*리소스 유형:* [pg](iam-admin-resources.md#neptune-pg-resource)(필수).

## rds:CreateDBCluster
<a name="neptune-iam-admin-actions-CreateDBCluster"></a>

`CreateDBCluster`는 새 Neptune DB 클러스터를 생성합니다.

*액세스 수준:* `Tagging`.

*종속 작업:* `iam:PassRole`.

*리소스 유형:*
+ [cluster](iam-admin-resources.md#neptune-cluster-resource)(필수).
+ [cluster-pg](iam-admin-resources.md#neptune-cluster-pg-resource)(필수).
+ [subgrp](iam-admin-resources.md#neptune-subgrp-resource)(필수).

*조건 키:*
+ [aws:RequestTag/*tag-key*](iam-admin-condition-keys.md#admin-aws_RequestTag)
+ [aws:TagKeys](iam-admin-condition-keys.md#admin-aws_TagKeys)
+ [neptune-rds\$1DatabaseEngine](iam-admin-condition-keys.md#admin-rds_DatabaseEngine)

## rds:CreateDBClusterParameterGroup
<a name="neptune-iam-admin-actions-CreateDBClusterParameterGroup"></a>

`CreateDBClusterParameterGroup`은 새 DB 클러스터 파라미터 그룹을 생성합니다.

*액세스 수준:* `Tagging`.

*리소스 유형:* [cluster-pg](iam-admin-resources.md#neptune-cluster-pg-resource)(필수).

*조건 키:*
+ [aws:RequestTag/*tag-key*](iam-admin-condition-keys.md#admin-aws_RequestTag)
+ [aws:TagKeys](iam-admin-condition-keys.md#admin-aws_TagKeys)

## rds:CreateDBClusterSnapshot
<a name="neptune-iam-admin-actions-CreateDBClusterSnapshot"></a>

`CreateDBClusterSnapshot`은 DB 클러스터의 스냅샷을 생성합니다.

*액세스 수준:* `Tagging`.

*리소스 유형:*
+ [cluster](iam-admin-resources.md#neptune-cluster-resource)(필수).
+ [cluster-snapshot](iam-admin-resources.md#neptune-cluster-snapshot-resource)(필수).

*조건 키:*
+ [aws:RequestTag/*tag-key*](iam-admin-condition-keys.md#admin-aws_RequestTag)
+ [aws:TagKeys](iam-admin-condition-keys.md#admin-aws_TagKeys)

## rds:CreateDBInstance
<a name="neptune-iam-admin-actions-CreateDBInstance"></a>

`CreateDBInstance`는 새 DB 인스턴스를 생성합니다.

*액세스 수준:* `Tagging`.

*종속 작업:* `iam:PassRole`.

*리소스 유형:*
+ [db](iam-admin-resources.md#neptune-db-resource)(필수).
+ [pg](iam-admin-resources.md#neptune-pg-resource)(필수).
+ [subgrp](iam-admin-resources.md#neptune-subgrp-resource)(필수).

*조건 키:*
+ [aws:RequestTag/*tag-key*](iam-admin-condition-keys.md#admin-aws_RequestTag)
+ [aws:TagKeys](iam-admin-condition-keys.md#admin-aws_TagKeys)

## rds:CreateDBParameterGroup
<a name="neptune-iam-admin-actions-CreateDBParameterGroup"></a>

`CreateDBParameterGroup`은 새 DB 파라미터 그룹을 생성합니다.

*액세스 수준:* `Tagging`.

*리소스 유형:* [pg](iam-admin-resources.md#neptune-pg-resource)(필수).

*조건 키:*
+ [aws:RequestTag/*tag-key*](iam-admin-condition-keys.md#admin-aws_RequestTag)
+ [aws:TagKeys](iam-admin-condition-keys.md#admin-aws_TagKeys)

## rds:CreateDBSubnetGroup
<a name="neptune-iam-admin-actions-CreateDBSubnetGroup"></a>

`CreateDBSubnetGroup`은 새 DB 서브넷 그룹을 생성합니다.

*액세스 수준:* `Tagging`.

*리소스 유형:* [subgrp](iam-admin-resources.md#neptune-subgrp-resource)(필수).

*조건 키:*
+ [aws:RequestTag/*tag-key*](iam-admin-condition-keys.md#admin-aws_RequestTag)
+ [aws:TagKeys](iam-admin-condition-keys.md#admin-aws_TagKeys)

## rds:CreateEventSubscription
<a name="neptune-iam-admin-actions-CreateEventSubscription"></a>

`CreateEventSubscription`은 Neptune 이벤트 알림 구독을 생성합니다.

*액세스 수준:* `Tagging`.

*리소스 유형:* [es](iam-admin-resources.md#neptune-es-resource)(필수).

*조건 키:*
+ [aws:RequestTag/*tag-key*](iam-admin-condition-keys.md#admin-aws_RequestTag)
+ [aws:TagKeys](iam-admin-condition-keys.md#admin-aws_TagKeys)

## rds:DeleteDBCluster
<a name="neptune-iam-admin-actions-DeleteDBCluster"></a>

`DeleteDBCluster`는 기존 Neptune DB 클러스터를 삭제합니다.

*액세스 수준:* `Write`.

*리소스 유형:*
+ [cluster](iam-admin-resources.md#neptune-cluster-resource)(필수).
+ [cluster-snapshot](iam-admin-resources.md#neptune-cluster-snapshot-resource)(필수).

## rds:DeleteDBClusterParameterGroup
<a name="neptune-iam-admin-actions-DeleteDBClusterParameterGroup"></a>

`DeleteDBClusterParameterGroup`은 지정된 DB 클러스터 파라미터 그룹을 삭제합니다.

*액세스 수준:* `Write`.

*리소스 유형:* [cluster-pg](iam-admin-resources.md#neptune-cluster-pg-resource)(필수).

## rds:DeleteDBClusterSnapshot
<a name="neptune-iam-admin-actions-DeleteDBClusterSnapshot"></a>

`DeleteDBClusterSnapshot`은 DB 클러스터 스냅샷을 삭제합니다.

*액세스 수준:* `Write`.

*리소스 유형:* [cluster-snapshot](iam-admin-resources.md#neptune-cluster-snapshot-resource)(필수).

## rds:DeleteDBInstance
<a name="neptune-iam-admin-actions-DeleteDBInstance"></a>

`DeleteDBInstance`는 지정된 DB 인스턴스를 삭제합니다.

*액세스 수준:* `Write`.

*리소스 유형:* [db](iam-admin-resources.md#neptune-db-resource)(필수).

## rds:DeleteDBParameterGroup
<a name="neptune-iam-admin-actions-DeleteDBParameterGroup"></a>

`DeleteDBParameterGroup`은 지정된 DBParameterGroup을 삭제합니다.

*액세스 수준:* `Write`.

*리소스 유형:* [pg](iam-admin-resources.md#neptune-pg-resource)(필수).

## rds:DeleteDBSubnetGroup
<a name="neptune-iam-admin-actions-DeleteDBSubnetGroup"></a>

`DeleteDBSubnetGroup`은 DB 서브넷 그룹을 삭제합니다.

*액세스 수준:* `Write`.

*리소스 유형:* [subgrp](iam-admin-resources.md#neptune-subgrp-resource)(필수).

## rds:DeleteEventSubscription
<a name="neptune-iam-admin-actions-DeleteEventSubscription"></a>

`DeleteEventSubscription`은 이벤트 알림 구독을 삭제합니다.

*액세스 수준:* `Write`.

*리소스 유형:* [es](iam-admin-resources.md#neptune-es-resource)(필수).

## rds:DescribeDBClusterParameterGroups
<a name="neptune-iam-admin-actions-DescribeDBClusterParameterGroups"></a>

`DescribeDBClusterParameterGroups`는 DBClusterParameterGroup 설명의 목록을 반환합니다.

*액세스 수준:* `List`.

*리소스 유형:* [cluster-pg](iam-admin-resources.md#neptune-cluster-pg-resource)(필수).

## rds:DescribeDBClusterParameters
<a name="neptune-iam-admin-actions-DescribeDBClusterParameters"></a>

`DescribeDBClusterParameters`는 특정 DB 클러스터 파라미터 그룹에 대한 세부 파라미터 목록을 반환합니다.

*액세스 수준:* `List`.

*리소스 유형:* [cluster-pg](iam-admin-resources.md#neptune-cluster-pg-resource)(필수).

## rds:DescribeDBClusterSnapshotAttributes
<a name="neptune-iam-admin-actions-DescribeDBClusterSnapshotAttributes"></a>

`DescribeDBClusterSnapshotAttributes`는 수동 DB 클러스터 스냅샷에 대한 DB 클러스터 스냅샷 속성 이름 및 값의 목록을 반환합니다.

*액세스 수준:* `List`.

*리소스 유형:* [cluster-snapshot](iam-admin-resources.md#neptune-cluster-snapshot-resource)(필수).

## rds:DescribeDBClusterSnapshots
<a name="neptune-iam-admin-actions-DescribeDBClusterSnapshots"></a>

`DescribeDBClusterSnapshots`는 DB 클러스터 스냅샷에 대한 정보를 반환합니다.

*액세스 수준:* `Read`.

## rds:DescribeDBClusters
<a name="neptune-iam-admin-actions-DescribeDBClusters"></a>

`DescribeDBClusters`는 프로비저닝된 Neptune DB 클러스터에 대한 정보를 반환합니다.

*액세스 수준:* `List`.

*리소스 유형:* [cluster](iam-admin-resources.md#neptune-cluster-resource)(필수).

## rds:DescribeDBEngineVersions
<a name="neptune-iam-admin-actions-DescribeDBEngineVersions"></a>

`DescribeDBEngineVersions`는 사용 가능한 DB 엔진의 목록을 반환합니다.

*액세스 수준:* `List`.

*리소스 유형:* [pg](iam-admin-resources.md#neptune-pg-resource)(필수).

## rds:DescribeDBInstances
<a name="neptune-iam-admin-actions-DescribeDBInstances"></a>

`DescribeDBInstances`는 모든 인스턴스에 대한 정보를 반환합니다.

*액세스 수준:* `List`.

*리소스 유형:* [es](iam-admin-resources.md#neptune-es-resource)(필수).

## rds:DescribeDBParameterGroups
<a name="neptune-iam-admin-actions-DescribeDBParameterGroups"></a>

`DescribeDBParameterGroups`는 DBParameterGroup 설명 목록을 반환합니다.

*액세스 수준:* `List`.

*리소스 유형:* [pg](iam-admin-resources.md#neptune-pg-resource)(필수).

## rds:DescribeDBParameters
<a name="neptune-iam-admin-actions-DescribeDBParameters"></a>

`DescribeDBParameters`는 특정 DB 파라미터 그룹에 대한 세부 파라미터 목록을 반환합니다.

*액세스 수준:* `List`.

*리소스 유형:* [pg](iam-admin-resources.md#neptune-pg-resource)(필수).

## rds:DescribeDBSubnetGroups
<a name="neptune-iam-admin-actions-DescribeDBSubnetGroups"></a>

`DescribeDBSubnetGroups`는 DBSubnetGroup 설명 목록을 반환합니다.

*액세스 수준:* `List`.

*리소스 유형:* [subgrp](iam-admin-resources.md#neptune-subgrp-resource)(필수).

## rds:DescribeEventCategories
<a name="neptune-iam-admin-actions-DescribeEventCategories"></a>

`DescribeEventCategories`는 모든 이벤트 소스 유형 또는 지정된 경우 지정된 소스 유형에 대한 범주 목록을 표시합니다.

*액세스 수준:* `List`.

## rds:DescribeEventSubscriptions
<a name="neptune-iam-admin-actions-DescribeEventSubscriptions"></a>

`DescribeEventSubscriptions`는 고객 계정의 모든 구독 설명을 나열합니다.

*액세스 수준:* `List`.

*리소스 유형:* [es](iam-admin-resources.md#neptune-es-resource)(필수).

## rds:DescribeEvents
<a name="neptune-iam-admin-actions-DescribeEvents"></a>

`DescribeEvents`는 지난 14일 동안의 DB 인스턴스, DB 보안 그룹 및 DB 파라미터 그룹과 관련된 이벤트를 반환합니다.

*액세스 수준:* `List`.

*리소스 유형:* [es](iam-admin-resources.md#neptune-es-resource)(필수).

## rds:DescribeOrderableDBInstanceOptions
<a name="neptune-iam-admin-actions-DescribeOrderableDBInstanceOptions"></a>

`DescribeOrderableDBInstanceOptions`는 지정된 엔진에 대해 명령 가능한 DB 인스턴스 옵션의 목록을 반환합니다.

*액세스 수준:* `List`.

## rds:DescribePendingMaintenanceActions
<a name="neptune-iam-admin-actions-DescribePendingMaintenanceActions"></a>

`DescribePendingMaintenanceActions`는 대기 중인 유지 관리 작업이 하나 이상 있는 리소스(예: DB 인스턴스)의 목록을 반환합니다.

*액세스 수준:* `List`.

*리소스 유형:* [db](iam-admin-resources.md#neptune-db-resource)(필수).

## rds:DescribeValidDBInstanceModifications
<a name="neptune-iam-admin-actions-DescribeValidDBInstanceModifications"></a>

`DescribeValidDBInstanceModifications`은 DB 인스턴스에서 가능한 수정 사항을 나열합니다.

*액세스 수준:* `List`.

*리소스 유형:* [db](iam-admin-resources.md#neptune-db-resource)(필수).

## rds:FailoverDBCluster
<a name="neptune-iam-admin-actions-FailoverDBCluster"></a>

`FailoverDBCluster`는 DB 클러스터에 대한 장애 조치를 강제로 실행합니다.

*액세스 수준:* `Write`.

*리소스 유형:* [cluster](iam-admin-resources.md#neptune-cluster-resource)(필수).

## rds:ListTagsForResource
<a name="neptune-iam-admin-actions-ListTagsForResource"></a>

`ListTagsForResource`는 Neptune 리소스의 모든 태그를 나열합니다.

*액세스 수준:* `Read`.

*리소스 유형:*
+ [cluster-snapshot](iam-admin-resources.md#neptune-cluster-snapshot-resource)
+ [db](iam-admin-resources.md#neptune-db-resource)
+ [es](iam-admin-resources.md#neptune-es-resource)
+ [pg](iam-admin-resources.md#neptune-pg-resource)
+ [subgrp](iam-admin-resources.md#neptune-subgrp-resource)

## rds:ModifyDBCluster
<a name="neptune-iam-admin-actions-ModifyDBCluster"></a>

`ModifyDBCluster`

Neptune DB 클러스터의 설정을 수정합니다.

*액세스 수준:* `Write`.

*종속 작업:* `iam:PassRole`.

*리소스 유형:*
+ [cluster](iam-admin-resources.md#neptune-cluster-resource)(필수).
+ [cluster-pg](iam-admin-resources.md#neptune-cluster-pg-resource)(필수).

## rds:ModifyDBClusterParameterGroup
<a name="neptune-iam-admin-actions-ModifyDBClusterParameterGroup"></a>

`ModifyDBClusterParameterGroup`은 DB 클러스터 파라미터 그룹의 파라미터를 수정합니다.

*액세스 수준:* `Write`.

*리소스 유형:* [cluster-pg](iam-admin-resources.md#neptune-cluster-pg-resource)(필수).

## rds:ModifyDBClusterSnapshotAttribute
<a name="neptune-iam-admin-actions-ModifyDBClusterSnapshotAttribute"></a>

`ModifyDBClusterSnapshotAttribute`는 속성 및 값을 수동 DB 클러스터 스냅샷에 추가하거나, 수동 DB 클러스터 스냅샷에서 속성 및 값을 제거합니다.

*액세스 수준:* `Write`.

*리소스 유형:* [cluster-snapshot](iam-admin-resources.md#neptune-cluster-snapshot-resource)(필수).

## rds:ModifyDBInstance
<a name="neptune-iam-admin-actions-ModifyDBInstance"></a>

`ModifyDBInstance`는 DB 인스턴스의 설정을 수정합니다.

*액세스 수준:* `Write`.

*종속 작업:* `iam:PassRole`.

*리소스 유형:*
+ [db](iam-admin-resources.md#neptune-db-resource)(필수).
+ [pg](iam-admin-resources.md#neptune-pg-resource)(필수).

## rds:ModifyDBParameterGroup
<a name="neptune-iam-admin-actions-ModifyDBParameterGroup"></a>

`ModifyDBParameterGroup`은 DB 파라미터 그룹의 파라미터를 수정합니다.

*액세스 수준:* `Write`.

*리소스 유형:* [pg](iam-admin-resources.md#neptune-pg-resource)(필수).

## rds:ModifyDBSubnetGroup
<a name="neptune-iam-admin-actions-ModifyDBSubnetGroup"></a>

`ModifyDBSubnetGroup`은 기존 DB 서브넷 그룹을 수정합니다.

*액세스 수준:* `Write`.

*리소스 유형:* [subgrp](iam-admin-resources.md#neptune-subgrp-resource)(필수).

## rds:ModifyEventSubscription
<a name="neptune-iam-admin-actions-ModifyEventSubscription"></a>

`ModifyEventSubscription`은 기존 Neptune 이벤트 알림 구독을 수정합니다.

*액세스 수준:* `Write`.

*리소스 유형:* [es](iam-admin-resources.md#neptune-es-resource)(필수).

## rds:RebootDBInstance
<a name="neptune-iam-admin-actions-RebootDBInstance"></a>

`RebootDBInstance`는 인스턴스에 대한 데이터베이스 엔진 서비스를 다시 시작합니다.

*액세스 수준:* `Write`.

*리소스 유형:* [db](iam-admin-resources.md#neptune-db-resource)(필수).

## rds:RemoveRoleFromDBCluster
<a name="neptune-iam-admin-actions-RemoveRoleFromDBCluster"></a>

`RemoveRoleFromDBCluster`는 Amazon Neptune DB 클러스터에서 AWS Identity and Access Management(IAM) 역할을 연결 해제합니다.

*액세스 수준:* `Write`.

*종속 작업:* `iam:PassRole`.

*리소스 유형:* [cluster](iam-admin-resources.md#neptune-cluster-resource)(필수).

## rds:RemoveSourceIdentifierFromSubscription
<a name="neptune-iam-admin-actions-RemoveSourceIdentifierFromSubscription"></a>

`RemoveSourceIdentifierFromSubscription`은 기존의 Neptune 이벤트 알림 구독에서 소스 식별자를 제거합니다.

*액세스 수준:* `Write`.

*리소스 유형:* [es](iam-admin-resources.md#neptune-es-resource)(필수).

## rds:RemoveTagsFromResource
<a name="neptune-iam-admin-actions-RemoveTagsFromResource"></a>

`RemoveTagsFromResource`는 Neptune 리소스에서 메타데이터 태그를 제거합니다.

*액세스 수준:* `Tagging`.

*리소스 유형:*
+ [cluster-snapshot](iam-admin-resources.md#neptune-cluster-snapshot-resource)
+ [db](iam-admin-resources.md#neptune-db-resource)
+ [es](iam-admin-resources.md#neptune-es-resource)
+ [pg](iam-admin-resources.md#neptune-pg-resource)
+ [subgrp](iam-admin-resources.md#neptune-subgrp-resource)

*조건 키:*
+ [aws:RequestTag/*tag-key*](iam-admin-condition-keys.md#admin-aws_RequestTag)
+ [aws:TagKeys](iam-admin-condition-keys.md#admin-aws_TagKeys)

## rds:ResetDBClusterParameterGroup
<a name="neptune-iam-admin-actions-ResetDBClusterParameterGroup"></a>

`ResetDBClusterParameterGroup`은 DB 클러스터 파라미터 그룹의 파라미터를 기본값으로 수정합니다.

*액세스 수준:* `Write`.

*리소스 유형:* [cluster-pg](iam-admin-resources.md#neptune-cluster-pg-resource)(필수).

## rds:ResetDBParameterGroup
<a name="neptune-iam-admin-actions-ResetDBParameterGroup"></a>

`ResetDBParameterGroup`은 DB 파라미터 그룹의 파라미터를 엔진/시스템 기본값으로 수정합니다.

*액세스 수준:* `Write`.

*리소스 유형:* [pg](iam-admin-resources.md#neptune-pg-resource)(필수).

## rds:RestoreDBClusterFromSnapshot
<a name="neptune-iam-admin-actions-RestoreDBClusterFromSnapshot"></a>

`RestoreDBClusterFromSnapshot`은 DB 클러스터 스냅샷에서 새 DB 클러스터를 생성합니다.

*액세스 수준:* `Write`.

*종속 작업:* `iam:PassRole`.

*리소스 유형:*
+ [cluster](iam-admin-resources.md#neptune-cluster-resource)(필수).
+ [cluster-snapshot](iam-admin-resources.md#neptune-cluster-snapshot-resource)(필수).

*조건 키:*
+ [aws:RequestTag/*tag-key*](iam-admin-condition-keys.md#admin-aws_RequestTag)
+ [aws:TagKeys](iam-admin-condition-keys.md#admin-aws_TagKeys)

## rds:RestoreDBClusterToPointInTime
<a name="neptune-iam-admin-actions-RestoreDBClusterToPointInTime"></a>

`RestoreDBClusterToPointInTime`은 DB 클러스터를 임의의 시점으로 복원합니다.

*액세스 수준:* `Write`.

*종속 작업:* `iam:PassRole`.

*리소스 유형:*
+ [cluster](iam-admin-resources.md#neptune-cluster-resource)(필수).
+ [subgrp](iam-admin-resources.md#neptune-subgrp-resource)(필수).

*조건 키:*
+ [aws:RequestTag/*tag-key*](iam-admin-condition-keys.md#admin-aws_RequestTag)
+ [aws:TagKeys](iam-admin-condition-keys.md#admin-aws_TagKeys)

## rds:StartDBCluster
<a name="neptune-iam-admin-actions-StartDBCluster"></a>

`StartDBCluster`는 지정된 DB 클러스터를 시작합니다.

*액세스 수준:* `Write`.

*리소스 유형:* [cluster](iam-admin-resources.md#neptune-cluster-resource)(필수).

## rds:StopDBCluster
<a name="neptune-iam-admin-actions-StopDBCluster"></a>

`StopDBCluster`는 지정된 DB 클러스터를 중지합니다.

*액세스 수준:* `Write`.

*리소스 유형:* [cluster](iam-admin-resources.md#neptune-cluster-resource)(필수).

# Amazon Neptune 관리를 위한 IAM 리소스 유형
<a name="iam-admin-resources"></a>

Neptune은 IAM 관리 정책문의 `Resource` 요소에 사용할 수 있도록 다음 표의 리소스 유형을 지원합니다. `Resource` 요소에 대한 자세한 내용은 [IAM JSON 정책 요소: 리소스](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_resource.html)를 참조하십시오.

[Neptune 관리 작업 목록](neptune-iam-admin-actions.md)은 각 작업으로 지정할 수 있는 리소스 유형을 식별합니다. 리소스 유형은 또한 아래 표의 마지막 열에 지정된 대로 정책에 포함할 수 있는 조건 키를 결정합니다.

아래 표의 `ARN` 열은 이 유형의 리소스를 참조하는 데 사용해야 하는 Amazon 리소스 이름(ARN) 형식을 지정합니다. ` $ `가 앞에 오는 부분은 시나리오의 실제 값으로 대체해야 합니다. 예를 들어, ARN에서 `$user-name`이 표시되면 해당 문자열을 실제 IAM 사용자의 이름 또는 IAM 사용자의 이름이 포함된 정책 변수로 대체해야 합니다. ARN에 대한 자세한 내용은 [IAM ARN](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns) 및 [Amazon Neptune에서 관리 ARN으로 작업](tagging-arns.md) 섹션을 참조하세요.

` Condition Keys ` 열은 이 리소스와 호환되는 지원 작업이 모두 문에 포함된 경우에만 IAM 정책문에 포함할 수 있는 조건 컨텍스트 키를 지정합니다.


****  

| 리소스 유형 | ARN | 조건 키 | 
| --- | --- | --- | 
|  `cluster` (DB 클러스터)  | arn:partition:rds:region:account-id:cluster:instance-name |  [aws:ResourceTag/*tag-key*](iam-admin-condition-keys.md#admin-aws_ResourceTag) [rds:cluster-tag/*tag-key*](iam-admin-condition-keys.md#admin-rds_cluster-tag)  | 
|  `cluster-pg` (DB 클러스터 파라미터 그룹)  | arn:partition:rds:region:account-id:cluster-pg:neptune-DBClusterParameterGroupName |  [aws:ResourceTag/*tag-key*](iam-admin-condition-keys.md#admin-aws_ResourceTag)  | 
|  `cluster-snapshot` (DB 클러스터 스냅샷)  | arn:partition:rds:region:account-id:cluster-snapshot:neptune-DBClusterSnapshotName |  [aws:ResourceTag/*tag-key*](iam-admin-condition-keys.md#admin-aws_ResourceTag) [rds:cluster-snapshot-tag/*tag-key*](iam-admin-condition-keys.md#admin-rds_cluster-snapshot-tag)  | 
|  `db` (DB 인스턴스)  | arn:partition:rds:region:account-id:db:neptune-DbInstanceName |  [aws:ResourceTag/*tag-key*](iam-admin-condition-keys.md#admin-aws_ResourceTag) [rds:DatabaseClass](iam-admin-condition-keys.md#admin-rds_DatabaseClass) [rds:DatabaseEngine](iam-admin-condition-keys.md#admin-rds_DatabaseEngine) [rds:db-tag/*tag-key*](iam-admin-condition-keys.md#admin-rds_db-tag)  | 
|  `es` (이벤트 구독)  | arn:partition:rds:region:account-id:es:neptune-CustSubscriptionId  |  [aws:ResourceTag/*tag-key*](iam-admin-condition-keys.md#admin-aws_ResourceTag) [rds:es-tag/*tag-key*](iam-admin-condition-keys.md#admin-rds_es-tag)  | 
|  `pg` (DB 파라미터 그룹)  | arn:partition:rds:region:account-id:pg:neptune-ParameterGroupName |  [aws:ResourceTag/*tag-key*](iam-admin-condition-keys.md#admin-aws_ResourceTag) [rds:pg-tag/*tag-key*](iam-admin-condition-keys.md#admin-rds_pg-tag)  | 
|  `subgrp` (DB 서브넷 그룹)  | arn:partition:rds:region:account-id:subgrp:neptune-DBSubnetGroupName\$1 |  [aws:ResourceTag/*tag-key*](iam-admin-condition-keys.md#admin-aws_ResourceTag) [rds:subgrp-tag/*tag-key*](iam-admin-condition-keys.md#admin-rds_subgrp-tag)  | 

# Amazon Neptune 관리를 위한 IAM 조건 키
<a name="iam-admin-condition-keys"></a>

[조건 키를 사용하면](security-iam-access-manage.md#iam-using-condition-keys) IAM 정책문에 조건을 지정하여 조건이 충족될 때만 문이 적용되도록 할 수 있습니다. Neptune 관리 정책문에서 사용할 수 있는 조건 키는 다음과 같은 범주로 구분됩니다.
+ [전역 조건 키](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)   - AWS 서비스 AWS 에서 일반적으로 사용할 수 있도록에서 정의합니다. 대부분은 Neptune 관리 정책문에서 사용할 수 있습니다.
+ [관리 리소스 속성 조건 키](#iam-rds-property-condition-keys)   –   [아래](#iam-rds-property-condition-keys)에 나열된 이러한 키는 관리 리소스의 속성을 기반으로 합니다.
+ [태그 기반 액세스 조건 키](#iam-rds-tag-based-condition-keys) - [아래](#iam-rds-tag-based-condition-keys)에 나열된 이러한 키는 관리 리소스에 연결된 [AWS 태그](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)를 기반으로 합니다.

## Neptune 관리 리소스 속성 조건 키
<a name="iam-rds-property-condition-keys"></a>


| 조건 키 | 설명 | 형식 | 
| --- | --- | --- | 
| rds:DatabaseClass | DB 인스턴스 클래스 유형을 기준으로 액세스를 필터링합니다. | 문자열 | 
| rds:DatabaseEngine | 데이터베이스 엔진을 기준으로 액세스를 필터링합니다. 가능한 값은 CreateDBInstance API의 엔진 매개 변수를 참조하세요. | 문자열 | 
| rds:DatabaseName | DB 인스턴스에 있는 데이터베이스의 사용자 정의 이름을 기준으로 액세스를 필터링합니다. | 문자열 | 
| rds:EndpointType | 엔드포인트 유형을 기준으로 액세스를 필터링합니다. READER, WRITER, CUSTOM 중 하나입니다. | 문자열 | 
| rds:Vpc | DB 인스턴스를 Amazon Virtual Private Cloud(Amazon VPC)에서 실행할지 여부를 지정하는 값을 기준으로 액세스를 필터링합니다. DB 인스턴스가 Amazon VPC에서 실행됨을 나타내려면 true를 지정합니다. | 부울 | 

## 관리 태그 기반 조건 키
<a name="iam-rds-tag-based-condition-keys"></a>

Amazon Neptune에서는 사용자 지정 태그로 IAM 정책에서 조건을 지정하여 [관리 API 참조](api.md)를 통해 Neptune에 대한 액세스를 제어할 수 있습니다.

예를 들어, `beta`, `staging`, `production` 등의 값과 함께 `environment`라는 태그를 DB 인스턴스에 추가하는 경우 해당 태그 값에 따라 인스턴스에 대한 액세스를 제한하는 정책을 만들 수 있습니다.

**중요**  
태그 지정을 사용하여 Neptune 리소스에 대한 액세스를 관리하는 경우 태그에 대한 액세스의 보안을 유지해야 합니다. `AddTagsToResource` 및 `RemoveTagsFromResource` 작업에 대한 정책을 생성하여 태그에 대한 액세스를 제한할 수 있습니다.  
예를 들어, 다음 정책을 사용하여 사용자가 모든 리소스에 대해 태그를 추가하거나 제거할 수 있는 기능을 거부할 수 있습니다. 그런 다음 특정 사용자가 태그를 추가하거나 제거할 수 있도록 정책을 만들 수 있습니다.  

****  

```
{ "Version":"2012-10-17",		 	 	 
  "Statement":[
    { "Sid": "DenyTagUpdates",
      "Effect": "Deny",
      "Action": [
        "rds:AddTagsToResource",
        "rds:RemoveTagsFromResource"
      ],
      "Resource":"*"
    }
  ]
}
```

다음 태그 기반 조건 키는 관리 정책문의 관리 리소스에만 사용할 수 있습니다.


**태그 기반 관리 조건 키**  

| 조건 키 | 설명 | 형식 | 
| --- | --- | --- | 
|   [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requesttag](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requesttag)  | 요청에 태그 키-값 페어가 있는지 여부를 기준으로 액세스를 필터링합니다. | 문자열 | 
|   [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourcetag](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourcetag)  | 리소스에 연결된 태그 키-값 페어를 기준으로 액세스를 필터링합니다. | 문자열 | 
|   [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keyss](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keyss)  | 요청에 태그 키가 있는지 여부를 기준으로 액세스를 필터링합니다. | 문자열 | 
| rds:cluster-pg-tag/\$1\$1TagKey\$1 | DB 클러스터 파라미터 그룹에 연결된 태그를 기준으로 액세스를 필터링합니다. | 문자열 | 
| rds:cluster-snapshot-tag/\$1\$1TagKey\$1 | DB 클러스터 스냅샷에 연결된 태그를 기준으로 액세스를 필터링합니다. | 문자열 | 
| rds:cluster-tag/\$1\$1TagKey\$1 | DB 클러스터에 연결된 태그를 기준으로 액세스를 필터링합니다. | 문자열 | 
| rds:db-tag/\$1\$1TagKey\$1 | DB 인스턴스에 연결된 태그를 기준으로 액세스를 필터링합니다. | 문자열 | 
| rds:es-tag/\$1\$1TagKey\$1 | 이벤트 구독에 연결된 태그를 기준으로 액세스를 필터링합니다. | 문자열 | 
| rds:pg-tag/\$1\$1TagKey\$1 | DB 파라미터 그룹에 연결된 태그를 기준으로 액세스를 필터링합니다. | 문자열 | 
| rds:req-tag/\$1\$1TagKey\$1 | 리소스에 태그 지정하는 데 사용할 수 있는 태그 키와 값 세트를 기준으로 액세스를 필터링합니다. | 문자열 | 
| rds:secgrp-tag/\$1\$1TagKey\$1 | DB 보안 그룹에 연결된 태그를 기준으로 액세스를 필터링합니다. | 문자열 | 
| rds:snapshot-tag/\$1\$1TagKey\$1 | DB 스냅샷에 연결된 태그를 기준으로 액세스를 필터링합니다. | 문자열 | 
| rds:subgrp-tag/\$1\$1TagKey\$1 | DB 서브넷 그룹에 연결된 태그를 기준으로 액세스를 필터링합니다. | 문자열 | 

# Amazon Neptune을 위한 IAM 관리 정책문 생성
<a name="iam-admin-policy-examples"></a>

## 일반 관리 정책 예제
<a name="iam-admin-policy-general-examples"></a>

다음 예제는 DB 클러스터에서 다양한 관리 작업을 수행할 수 있는 권한을 부여하는 Neptune 관리 정책을 생성하는 방법을 보여줍니다.

### IAM 사용자가 지정된 DB 인스턴스를 삭제하지 못하도록 차단하는 정책
<a name="iam-admin-policy-not-delete-instance"></a>

다음은 IAM 사용자가 지정된 Neptune DB 인스턴스를 삭제하지 못하도록 차단하는 예제 정책입니다.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyDeleteOneInstance",
      "Effect": "Deny",
      "Action": "rds:DeleteDBInstance",
      "Resource": "arn:aws:rds:us-west-2:123456789012:db:my-instance-name"
    }
  ]
}
```

------

### 새 DB 인스턴스 생성 권한을 부여하는 정책
<a name="iam-admin-policy-to-create-instances"></a>

다음은 IAM 사용자에게 지정된 Neptune DB 클러스터에서 DB 인스턴스를 생성하도록 허용하는 정책 예제입니다.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowCreateInstance",
      "Effect": "Allow",
      "Action": "rds:CreateDBInstance",
      "Resource": "arn:aws:rds:us-west-2:123456789012:cluster:my-cluster"
    }
  ]
}
```

------

### 특정 DB 파라미터 그룹을 사용하는 새 DB 인스턴스를 생성할 권한을 부여하는 정책
<a name="iam-admin-policy-to-create-instances-with-pg"></a>

다음은 IAM 사용자가 지정된 DB 파라미터 그룹만 사용하여 특정 Neptune DB 클러스터의 지정된 DB 클러스터(여기 `us-west-2`)에서 DB 인스턴스를 생성할 수 있도록 허용하는 예제 정책입니다.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowCreateInstanceWithPG",
      "Effect": "Allow",
      "Action": "rds:CreateDBInstance",
      "Resource": [
        "arn:aws:rds:us-west-2:123456789012:cluster:my-cluster",
        "arn:aws:rds:us-west-2:123456789012:pg:my-instance-pg"
      ]
    }
  ]
}
```

------

### 리소스 설명 권한을 부여하는 정책
<a name="iam-admin-policy-to-describe"></a>

다음은 IAM 사용자가 모든 Neptune 리소스를 설명할 수 있도록 허용하는 예제 정책입니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowDescribe",
            "Effect": "Allow",
            "Action": "rds:Describe*",
            "Resource": "*"
        }
    ]
}
```

------

## 태그 기반 관리 정책 예제
<a name="iam-admin-policy-tagging-examples"></a>

다음 예제에서는 DB 클러스터의 다양한 관리 작업에 대한 권한을 필터링하도록 태그를 지정하는 Neptune 관리 정책을 생성하는 방법을 보여줍니다.

### 예제 1: 여러 값을 취할 수 있는 사용자 지정 태그를 사용하여 리소스 작업에 대한 권한 부여
<a name="security-iam-tag-examples-1"></a>

아래 정책은 `env` 태그가 `dev` 또는 `test` 중 하나로 설정된 모든 DB 인스턴스에서 `ModifyDBInstance`, `CreateDBInstance` 또는 `DeleteDBInstance` API를 사용할 수 있도록 허용합니다.

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

****  

```
{ "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowDevTestAccess",
      "Effect": "Allow",
      "Action": [
        "rds:ModifyDBInstance",
        "rds:CreateDBInstance",
        "rds:DeleteDBInstance"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "rds:db-tag/env": [
              "dev",
              "test"
          ],
          "rds:DatabaseEngine": "neptune"
        }
      }
    }
  ]
}
```

------

### 예제 2: 리소스에 태그 지정하는 데 사용할 수 있는 태그 키와 값 세트 제한
<a name="security-iam-tag-examples-2"></a>

이 정책은 `Condition` 키를 사용하여 키 `env`와 값이 `test`, `qa`, `dev`인 태그를 리소스에 추가할 수 있도록 허용합니다.

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

****  

```
{ "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowTagAccessForDevResources",
      "Effect": "Allow",
      "Action": [
        "rds:AddTagsToResource",
        "rds:RemoveTagsFromResource"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "rds:req-tag/env": [
            "test",
            "qa",
            "dev"
          ],
          "rds:DatabaseEngine": "neptune"
        }
      }
    }
  ]
}
```

------

### 예제 3: `aws:ResourceTag`를 기반으로 Neptune 리소스에 대한 전체 액세스 허용
<a name="security-iam-tag-examples-3"></a>

다음 정책은 위의 첫 번째 예와 비슷하지만, `aws:ResourceTag` 대신 사용합니다.

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

****  

```
{ "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowFullAccessToDev",
      "Effect": "Allow",
      "Action": [
        "rds:*"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/env": "dev",
          "rds:DatabaseEngine": "neptune"
        }
      }
    }
  ]
}
```

------

# Amazon Neptune의 데이터에 액세스하기 위한 사용자 지정 IAM 정책문 생성
<a name="iam-data-access-policies"></a>

Neptune 데이터 액세스 정책 명령문은 [데이터 액세스 작업](iam-dp-actions.md), [리소스](iam-data-resources.md) 및 [조건 키](iam-data-condition-keys.md#iam-neptune-condition-keys)를 사용하며, 모두 앞에 `neptune-db:` 접두사가 붙습니다.

**Topics**
+ [Neptune 데이터 액세스 정책문에서 쿼리 작업 사용](#iam-data-query-actions)
+ [Amazon Neptune에서 데이터 액세스를 위한 IAM 작업](iam-dp-actions.md)
+ [Amazon Neptune의 데이터에 액세스하기 위한 IAM 리소스 유형](iam-data-resources.md)
+ [Amazon Neptune의 데이터에 액세스하기 위한 IAM 조건 키](iam-data-condition-keys.md)
+ [Amazon Neptune에서 IAM 데이터 액세스 정책 생성](iam-data-access-examples.md)

## Neptune 데이터 액세스 정책문에서 쿼리 작업 사용
<a name="iam-data-query-actions"></a>

데이터 액세스 정책문에 사용할 수 있는 3가지 Neptune 쿼리 작업(`ReadDataViaQuery`, `WriteDataViaQuery`, `DeleteDataViaQuery`)이 있습니다. 특정 쿼리에는 이러한 작업을 2개 이상 수행할 수 있는 권한이 필요할 수 있으며, 쿼리를 실행하기 위해 이러한 작업의 조합을 허용해야 하는지 명확하지 않을 수 있습니다.

Neptune은 쿼리를 실행하기 전에 쿼리의 각 단계를 실행하는 데 필요한 권한을 결정하고, 이를 쿼리에 필요한 전체 권한 세트로 결합합니다. 이 전체 권한 세트에는 쿼리가 *수행할 수 있는* 모든 작업이 포함된다는 점에 유의하세요. 이는 데이터를 대상으로 실행될 때 쿼리가 실제로 수행하는 작업 세트일 필요는 없습니다.

즉, 특정 쿼리를 실행하도록 허용하려면 실제로 수행하는지 여부에 관계없이 쿼리가 수행할 수 있는 모든 작업에 대한 권한을 제공해야 합니다.

다음은 이에 대해 더 자세히 설명하는 몇 가지 Gremlin 쿼리 샘플입니다.
+ 

  ```
  g.V().count()
  ```

  `g.V()` 및 `count()`는 읽기 액세스 권한만 필요하므로, 전체 쿼리에는 `ReadDataViaQuery` 액세스만 필요합니다.
+ 

  ```
  g.addV()
  ```

  `addV()`는 새 버텍스를 삽입하기 전에 주어진 ID를 가진 버텍스가 존재하는지 여부를 확인해야 합니다. 즉, `ReadDataViaQuery` 및 `WriteDataViaQuery` 액세스가 둘 다 필요합니다.
+ 

  ```
  g.V('1').as('a').out('created').addE('createdBy').to('a')
  ```

  `g.V('1').as('a')` 및 `out('created')`은 읽기 액세스 권한만 필요하지만, `addE().from('a')`은 읽기 액세스 권한과 쓰기 액세스 권한이 모두 필요합니다. `addE()`는 새로 추가하기 전에 `from` 및 `to` 버텍스를 읽고 ID가 같은 엣지가 이미 존재하는지 확인해야 하기 때문입니다. 따라서 전체 쿼리에는 `ReadDataViaQuery` 및 `WriteDataViaQuery` 액세스가 모두 필요합니다.
+ 

  ```
  g.V().drop()
  ```

  `g.V()`는 읽기 액세스 권한만 필요합니다. `drop()`은 버텍스나 엣지를 삭제하기 전에 읽어야 하므로, 읽기 액세스 권한과 삭제 액세스 권한이 모두 필요합니다. 따라서 전체 쿼리에는 `ReadDataViaQuery` 및 `DeleteDataViaQuery` 액세스가 모두 필요합니다.
+ 

  ```
  g.V('1').property(single, 'key1', 'value1')
  ```

  `g.V('1')`는 읽기 액세스 권한만 필요하지만, `property(single, 'key1', 'value1')`는 읽기, 쓰기, 삭제 액세스 권한이 필요합니다. 이 `property()` 단계에서는 버텍스에 키와 값이 아직 없으면 해당 키와 값을 삽입하지만, 이미 존재하는 경우 기존 속성값을 삭제하고 그 자리에 새 값을 삽입합니다. 따라서 전체 쿼리에는 `ReadDataViaQuery`, `WriteDataViaQuery`, `DeleteDataViaQuery` 액세스 권한이 필요합니다.

  `property()` 단계가 포함된 모든 쿼리에는 `ReadDataViaQuery`, `WriteDataViaQuery`, `DeleteDataViaQuery` 권한이 필요합니다.

다음은 몇 가지 openCypher 예입니다.
+ 

  ```
  MATCH (n)
  RETURN n
  ```

  이 쿼리는 데이터베이스의 모든 노드를 읽고 반환하며, `ReadDataViaQuery` 액세스만 필요합니다.
+ 

  ```
  MATCH (n:Person)
  SET n.dept = 'AWS'
  ```

  이 쿼리에는 `ReadDataViaQuery`, `WriteDataViaQuery`, `DeleteDataViaQuery` 액세스가 필요합니다. 레이블이 'Person'인 모든 노드를 읽고 키 `dept`와 값 `AWS`가 포함된 새 속성을 추가하거나, `dept` 속성이 이미 있는 경우 이전 값을 삭제하고 대신 `AWS`를 삽입합니다. 또한 설정할 값이 `null`인 경우 `SET`는 속성을 모두 삭제합니다.

   `SET` 절에서 기존 값을 삭제해야 하는 경우도 있기 때문에 **항상** `DeleteDataViaQuery` 권한과 `ReadDataViaQuery` 및 `WriteDataViaQuery` 권한이 필요합니다.
+ 

  ```
  MATCH (n:Person)
  DETACH DELETE n
  ```

  이 쿼리는 `ReadDataViaQuery` 및 `DeleteDataViaQuery` 권한을 필요로 합니다. `Person` 레이블이 있는 모든 노드를 찾아 해당 노드에 연결된 엣지와 관련 레이블 및 속성과 함께 삭제합니다.
+ 

  ```
  MERGE (n:Person {name: 'John'})-[:knows]->(:Person {name: 'Peter'})
  RETURN n
  ```

  이 쿼리는 `ReadDataViaQuery` 및 `WriteDataViaQuery` 권한을 필요로 합니다. `MERGE` 절은 지정된 패턴과 일치하거나 패턴을 생성합니다. 패턴이 일치하지 않으면 쓰기가 발생할 수 있으므로, 읽기 권한뿐만 아니라 쓰기 권한도 필요합니다.

# Amazon Neptune에서 데이터 액세스를 위한 IAM 작업
<a name="iam-dp-actions"></a>

참고로 Neptune 데이터 액세스 작업에는 `neptune-db:` 접두사가 붙고, Neptune의 관리 작업에는 `rds:` 접두사가 붙습니다.

IAM의 데이터 리소스에 대한 Amazon 리소스 이름(ARN)은 생성 시 클러스터에 할당된 ARN과 같지 않습니다. [데이터 리소스 지정](iam-data-resources.md)에 나와 있는 대로 ARN을 구성해야 합니다. 이러한 데이터 리소스 ARN은 와일드카드를 사용하여 여러 리소스를 포함할 수 있습니다.

데이터 액세스 정책문에는 쿼리 언어별로 액세스를 제한하는 [neptune-db:QueryLanguage](iam-data-condition-keys.md#iam-neptune-condition-keys) 조건 키를 포함할 수도 있습니다.

[릴리스: 1.2.0.0(2022년 7월 21일)](engine-releases-1.2.0.0.md)부터 Neptune은 하나 이상의 [특정 Neptune 작업](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonneptune.html)에 대한 권한 제한을 지원합니다. 이를 통해 이전보다 더 세밀한 액세스 제어가 가능해졌습니다.

**중요**  
IAM 정책에 대한 변경 사항을 지정된 Neptune 리소스에 적용하는 데 최대 10분이 소요됩니다.
Neptune DB 클러스터에 적용되는 IAM 정책은 해당 클러스터의 모든 인스턴스에 적용됩니다.

## *쿼리 기반 데이터 액세스 작업*
<a name="iam-dp-actions-queries"></a>

**참고**  
쿼리가 처리하는 데이터에 따라 2가지 이상의 작업을 수행할 수 있기 때문에 특정 쿼리를 실행하는 데 필요한 권한이 항상 명확하지는 않습니다. 자세한 정보는 [쿼리 작업 사용](iam-data-access-policies.md#iam-data-query-actions)을 참조하세요.

## `neptune-db:ReadDataViaQuery`
<a name="readdataviaquery"></a>

`ReadDataViaQuery`를 활용하면 사용자가 쿼리를 제출하여 Neptune 데이터베이스에서 데이터를 읽을 수 있습니다.

*작업 그룹:* 읽기 전용, 읽기-쓰기.

*작업 컨텍스트 키:* `neptune-db:QueryLanguage`.

*필수 리소스:* 데이터베이스.

## `neptune-db:WriteDataViaQuery`
<a name="writedataviaquery"></a>

`WriteDataViaQuery`를 활용하면 사용자가 쿼리를 제출하여 Neptune 데이터베이스에 데이터를 쓸 수 있습니다.

*작업 그룹:* 읽기-쓰기.

*작업 컨텍스트 키:* `neptune-db:QueryLanguage`.

*필수 리소스:* 데이터베이스.

## `neptune-db:DeleteDataViaQuery`
<a name="deletedataviaquery"></a>

`DeleteDataViaQuery`를 활용하면 사용자가 쿼리를 제출하여 Neptune 데이터베이스에서 데이터를 삭제할 수 있습니다.

*작업 그룹:* 읽기-쓰기.

*작업 컨텍스트 키:* `neptune-db:QueryLanguage`.

*필수 리소스:* 데이터베이스.

## `neptune-db:GetQueryStatus`
<a name="getquerystatus"></a>

`GetQueryStatus`를 활용하면 사용자가 모든 활성 쿼리의 상태를 확인할 수 있습니다.

*작업 그룹:* 읽기 전용, 읽기-쓰기.

*작업 컨텍스트 키:* `neptune-db:QueryLanguage`.

*필수 리소스:* 데이터베이스.

## `neptune-db:GetStreamRecords`
<a name="getstreamrecords"></a>

`GetStreamRecords`를 활용하면 사용자가 Neptune에서 스트림 레코드를 가져올 수 있습니다.

*작업 그룹:* 읽기-쓰기.

*작업 컨텍스트 키:* `neptune-db:QueryLanguage`.

*필수 리소스:* 데이터베이스.

## `neptune-db:CancelQuery`
<a name="cancelquery"></a>

`CancelQuery`를 활용하면 사용자가 쿼리를 취소할 수 있습니다.

*작업 그룹:* 읽기-쓰기.

*필수 리소스:* 데이터베이스.

## *일반 데이터 액세스 작업*
<a name="iam-dp-actions-general"></a>

## `neptune-db:GetEngineStatus`
<a name="getenginestatus"></a>

`GetEngineStatus`를 활용하면 사용자가 Neptune 엔진의 상태를 확인할 수 있습니다.

*작업 그룹:* 읽기 전용, 읽기-쓰기.

*필수 리소스:* 데이터베이스.

## `neptune-db:GetStatisticsStatus`
<a name="getstatisticsstatus"></a>

`GetStatisticsStatus`를 활용하면 사용자가 데이터베이스에 대해 수집 중인 통계의 상태를 확인할 수 있습니다.

*작업 그룹:* 읽기 전용, 읽기-쓰기.

*필수 리소스:* 데이터베이스.

## `neptune-db:GetGraphSummary`
<a name="getgraphsummary"></a>

`GetGraphSummary`를 활용하면 그래프 요약 API를 통해 그래프의 읽기 전용 요약을 검색할 수 있습니다.

*작업 그룹:* 읽기 전용, 읽기-쓰기.

*필수 리소스:* 데이터베이스.

## `neptune-db:ManageStatistics`
<a name="managestatistics"></a>

`ManageStatistics`를 활용하면 사용자가 데이터베이스의 통계 수집을 관리할 수 있습니다.

*작업 그룹:* 읽기-쓰기.

*필수 리소스:* 데이터베이스.

## `neptune-db:DeleteStatistics`
<a name="deletestatistics"></a>

`DeleteStatistics`를 활용하면 사용자가 데이터베이스의 모든 통계를 삭제할 수 있습니다.

*작업 그룹:* 읽기-쓰기.

*필수 리소스:* 데이터베이스.

## `neptune-db:ResetDatabase`
<a name="resetdatabase"></a>

`ResetDatabase`를 활용하면 재설정에 필요한 토큰을 가져와서 Neptune 데이터베이스를 재설정할 수 있습니다.

*작업 그룹:* 읽기-쓰기.

*필수 리소스:* 데이터베이스.

## *대량 로더 데이터 액세스 작업*
<a name="iam-dp-actions-loader"></a>

## `neptune-db:StartLoaderJob`
<a name="startloaderjob"></a>

`StartLoaderJob`을 활용하면 사용자가 대량 로더 작업을 시작할 수 있습니다.

*작업 그룹:* 읽기-쓰기.

*필수 리소스:* 데이터베이스.

## `neptune-db:GetLoaderJobStatus`
<a name="getloaderjobstatus"></a>

`GetLoaderJobStatus`를 활용하면 사용자가 대량 로더 작업의 상태를 확인할 수 있습니다.

*작업 그룹:* 읽기 전용, 읽기-쓰기.

*필수 리소스:* 데이터베이스.

## `neptune-db:ListLoaderJobs`
<a name="listloaderjobs"></a>

`ListLoaderJobs`를 활용하면 사용자가 모든 대량 로더 작업을 나열할 수 있습니다.

*작업 그룹:* 나열 전용, 읽기 전용, 읽기-쓰기.

*필수 리소스:* 데이터베이스.

## `neptune-db:CancelLoaderJob`
<a name="cancelloaderjob"></a>

`CancelLoaderJob`을 활용하면 사용자가 로더 작업을 취소할 수 있습니다.

*작업 그룹:* 읽기-쓰기.

*필수 리소스:* 데이터베이스.

## *기계 학습 데이터 액세스 작업*
<a name="iam-dp-actions-ml"></a>

## `neptune-db:StartMLDataProcessingJob`
<a name="startmldataprocessingjob"></a>

`StartMLDataProcessingJob`을 활용하면 사용자가 Neptune ML 데이터 처리 작업을 시작할 수 있습니다.

*작업 그룹:* 읽기-쓰기.

*필수 리소스:* 데이터베이스.

## `neptune-db:StartMLModelTrainingJob`
<a name="startmlmodeltrainingjob"></a>

`StartMLModelTrainingJob`을 활용하면 사용자가 ML 모델 훈련 작업을 시작하는 권한을 부여할 수 있습니다.

*작업 그룹:* 읽기-쓰기.

*필수 리소스:* 데이터베이스.

## `neptune-db:StartMLModelTransformJob`
<a name="startmlmodeltransformjob"></a>

`StartMLModelTransformJob`을 활용하면 사용자가 ML 모델 변환 작업을 시작하는 권한을 부여할 수 있습니다.

*작업 그룹:* 읽기-쓰기.

*필수 리소스:* 데이터베이스.

## `neptune-db:CreateMLEndpoint`
<a name="createmlendpoint"></a>

`CreateMLEndpoint`를 활용하면 사용자가 Neptune ML 엔드포인트를 생성할 수 있습니다.

*작업 그룹:* 읽기-쓰기.

*필수 리소스:* 데이터베이스.

## `neptune-db:GetMLDataProcessingJobStatus`
<a name="getmldataprocessingjobstatus"></a>

`GetMLDataProcessingJobStatus`를 활용하면 사용자가 Neptune ML 데이터 처리 작업의 상태를 확인할 수 있습니다.

*작업 그룹:* 읽기 전용, 읽기-쓰기.

*필수 리소스:* 데이터베이스.

## `neptune-db:GetMLModelTrainingJobStatus`
<a name="getmlmodeltrainingjobstatus"></a>

`GetMLModelTrainingJobStatus`를 활용하면 사용자가 Neptune ML 모델 훈련 작업의 상태를 확인할 수 있습니다.

*작업 그룹:* 읽기 전용, 읽기-쓰기.

*필수 리소스:* 데이터베이스.

## `neptune-db:GetMLModelTransformJobStatus`
<a name="getmlmodeltransformjobstatus"></a>

`GetMLModelTransformJobStatus`를 활용하면 사용자가 Neptune ML 모델 변환 작업의 상태를 확인할 수 있습니다.

*작업 그룹:* 읽기 전용, 읽기-쓰기.

*필수 리소스:* 데이터베이스.

## `neptune-db:GetMLEndpointStatus`
<a name="getmlendpointstatus"></a>

`GetMLEndpointStatus`를 활용하면 사용자가 Neptune ML 엔드포인트의 상태를 확인할 수 있습니다.

*작업 그룹:* 읽기 전용, 읽기-쓰기.

*필수 리소스:* 데이터베이스.

## `neptune-db:ListMLDataProcessingJobs`
<a name="listmldataprocessingjobs"></a>

`ListMLDataProcessingJobs`를 활용하면 사용자가 모든 Neptune ML 데이터 처리 작업을 나열할 수 있습니다.

*작업 그룹:* 나열 전용, 읽기 전용, 읽기-쓰기.

*필수 리소스:* 데이터베이스.

## `neptune-db:ListMLModelTrainingJobs`
<a name="listmlmodeltrainingjobs"></a>

`ListMLModelTrainingJobs`를 활용하면 사용자가 모든 Neptune ML 모델 훈련 작업을 나열할 수 있습니다.

*작업 그룹:* 나열 전용, 읽기 전용, 읽기-쓰기.

*필수 리소스:* 데이터베이스.

## `neptune-db:ListMLModelTransformJobs`
<a name="listmlmodeltransformjobs"></a>

`ListMLModelTransformJobs`를 활용하면 사용자가 모든 ML 모델 변환 작업을 나열할 수 있습니다.

*작업 그룹:* 나열 전용, 읽기 전용, 읽기-쓰기.

*필수 리소스:* 데이터베이스.

## `neptune-db:ListMLEndpoints`
<a name="listmlendpoints"></a>

`ListMLEndpoints`를 활용하면 사용자가 모든 Neptune ML 엔드포인트를 나열할 수 있습니다.

*작업 그룹:* 나열 전용, 읽기 전용, 읽기-쓰기.

*필수 리소스:* 데이터베이스.

## `neptune-db:CancelMLDataProcessingJob`
<a name="cancelmldataprocessingjob"></a>

`CancelMLDataProcessingJob`을 활용하면 사용자가 Neptune ML 데이터 처리 작업을 취소할 수 있습니다.

*작업 그룹:* 읽기-쓰기.

*필수 리소스:* 데이터베이스.

## `neptune-db:CancelMLModelTrainingJob`
<a name="cancelmlmodeltrainingjob"></a>

`CancelMLModelTrainingJob`을 활용하면 사용자가 Neptune ML 모델 훈련 작업을 취소할 수 있습니다.

*작업 그룹:* 읽기-쓰기.

*필수 리소스:* 데이터베이스.

## `neptune-db:CancelMLModelTransformJob`
<a name="cancelmlmodeltransformjob"></a>

`CancelMLModelTransformJob`을 활용하면 사용자가 Neptune ML 모델 변환 작업을 취소할 수 있습니다.

*작업 그룹:* 읽기-쓰기.

*필수 리소스:* 데이터베이스.

## `neptune-db:DeleteMLEndpoint`
<a name="deletemlendpoint"></a>

`DeleteMLEndpoint`를 활용하면 사용자가 Neptune ML 엔드포인트를 삭제할 수 있습니다.

*작업 그룹:* 읽기-쓰기.

*필수 리소스:* 데이터베이스.

# Amazon Neptune의 데이터에 액세스하기 위한 IAM 리소스 유형
<a name="iam-data-resources"></a>

데이터 작업과 같은 데이터 리소스에는 `neptune-db:` 접두사가 있습니다.

Neptune 데이터 액세스 정책에서는 다음 형식으로 ARN에 액세스 권한을 부여하는 DB 클러스터를 지정합니다.

```
arn:aws:neptune-db:region:account-id:cluster-resource-id/*
```

이러한 리소스 ARN에는 다음과 같은 부분이 포함됩니다.
+ `region`는 Amazon Neptune DB 클러스터의 AWS 리전입니다.
+ `account-id`는 DB 클러스터의 AWS 계정 번호입니다.
+ `cluster-resource-id`는 DB 클러스터에 대한 리소스 ID입니다.
**중요**  
`cluster-resource-id`는 클러스터 식별자와 다릅니다. Neptune에서 클러스터 리소스 ID를 찾으려면 해당 DB 클러스터의 **구성** 섹션을 AWS Management Console참조하세요.

# Amazon Neptune의 데이터에 액세스하기 위한 IAM 조건 키
<a name="iam-data-condition-keys"></a>

[조건 키를 사용하면](security-iam-access-manage.md#iam-using-condition-keys) IAM 정책문에 조건을 지정하여 조건이 충족될 때만 문이 적용되도록 할 수 있습니다.

Neptune 데이터 액세스 정책문에서 사용할 수 있는 조건 키는 다음과 같은 범주로 구분됩니다.
+ [전역 조건 키](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)   - Neptune이 데이터 액세스 정책 설명에서 지원하는 AWS 전역 조건 키의 하위 집합은 [다음과](#iam-data-global-condition-keys) 같습니다.
+ [서비스별 조건 키](#iam-neptune-condition-keys)   –   데이터 액세스 정책문에 사용하기 위해 Neptune에서 특별히 정의한 키입니다. 현재로서는 특정 쿼리 언어를 사용하는 경우에만 액세스 권한을 부여하는 [neptune-db:QueryLanguage](#neptune-db-query-language)라는 하나만 있습니다.

## AWS 데이터 액세스 정책 설명에서 Neptune이 지원하는 전역 조건 컨텍스트 키
<a name="iam-data-global-condition-keys"></a>

다음 표에는 Amazon Neptune이 데이터 액세스 정책문에 사용할 수 있도록 지원하는 [AWS 글로벌 조건 컨텍스트 키](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)의 하위 세트가 나와 있습니다.


**데이터 액세스 정책문에 사용할 수 있는 글로벌 조건 키**  

| 조건 키 | 설명 | 형식 | 
| --- | --- | --- | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-currenttime](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-currenttime) | 요청의 현재 날짜 및 시간을 기준으로 액세스를 필터링합니다. | String | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-epochtime](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-epochtime) | UNIX epoch 값으로 표현된 요청 날짜 및 시간을 기준으로 액세스를 필터링합니다. | Numeric | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalaccount) | 요청한 보안 주체가 속한 계정별로 액세스를 필터링합니다. | String | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalarn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalarn) | 요청한 보안 주체의 ARN을 기준으로 액세스를 필터링합니다. | String | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalisawsservice](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalisawsservice) |  AWS 서비스 보안 주체가 직접 호출하는 경우에만 액세스를 허용합니다. | Boolean | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgid](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgid) | 요청하는 보안 주체가 속한 AWS Organizations에서 조직의 식별자를 기준으로 액세스를 필터링합니다. | String | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgpaths](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgpaths) | 요청을 하는 보안 주체의 AWS Organizations 경로를 기준으로 액세스를 필터링합니다. | String | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principaltag](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principaltag) | 요청하는 보안 주체에 연결된 태그를 기준으로 액세스를 필터링합니다. | String | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principaltype](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principaltype) | 요청하는 보안 주체의 유형을 기준으로 액세스를 필터링합니다. | String | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requestedregion](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requestedregion) | 요청에서 호출된 AWS 리전을 기준으로 액세스를 필터링합니다. | String | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-securetransport](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-securetransport) | SSL을 사용하여 요청을 보낸 경우에만 액세스를 허용합니다. | Boolean | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceip](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceip) | 요청자의 IP 주소로 액세스를 필터링합니다. | String | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tokenissuetime](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tokenissuetime) | 임시 보안 인증 정보가 발급된 날짜 및 시간을 기준으로 액세스를 필터링합니다. | String | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-useragent](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-useragent) | 요청자의 클라이언트 애플리케이션을 기준으로 액세스를 필터링합니다. | String | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-userid](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-userid) | 요청자의 보안 주체 식별자별로 액세스를 필터링합니다. | String | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-viaawsservice](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-viaawsservice) |  AWS 서비스가 사용자를 대신하여 요청한 경우에만 액세스를 허용합니다. | Boolean | 

## Neptune 서비스별 조건 키
<a name="iam-neptune-condition-keys"></a>

Neptune은 IAM 정책에 대해 다음과 같은 서비스별 조건 키를 지원합니다.


**Neptune 서비스별 조건 키**  

| 조건 키 | 설명 | 형식 | 
| --- | --- | --- | 
| neptune-db:QueryLanguage |  사용 중인 쿼리 언어를 기준으로 데이터 액세스를 필터링합니다. 유효 값은 `Gremlin`, `OpenCypher` 및 `Sparql`입니다. 지원되는 작업은 `ReadDataViaQuery`, `WriteDataViaQuery`, `DeleteDataViaQuery`, `GetQueryStatus`, `CancelQuery`입니다.  | String | 

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

------