

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 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>

身分型政策是附加至身分 (使用者、使用者群組或角色) 的 JSON 許可政策文件。這類政策控制身分可對哪些資源執行哪些動作，以及適用的條件。如需了解如何建立身分型政策，請參閱《*IAM 使用者指南*》中的[透過客戶管理政策定義自訂 IAM 許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)。

身分型政策可分為*內嵌政策* (直接內嵌於單一身分) 與*受管政策* (可附加至多個身分的獨立政策)。如需了解如何在受管政策及內嵌政策之間做選擇，請參閱《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) 是 JSON 政策，可指定 中組織或組織單位 (OU) 的最大許可[AWS Organizations](https://aws.amazon.com/organizations/)。 AWS Organizations 是一種服務，用於分組和集中管理您企業擁有的多個 AWS 帳戶。若您啟用組織中的所有功能，您可以將服務控制政策 (SCP) 套用到任何或所有帳戶。SCP 會限制成員帳戶中實體的許可，包括每個 AWS 帳戶根使用者。如需 Organizations 和 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 資料庫操作`neptune-db:*`的 `rds:*`和 。請參閱[為什麼使用 Neptune 資料庫需要 Amazon RDS 許可和資源？](https://aws.amazon.com/neptune/faqs/) 如需 Neptune 資料庫為何需要 Amazon RDS 許可的詳細資訊。
+  允許存取 `neptune-graph:*` 以進行 Neptune Analytics 操作。

## 使用 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)中的*建立和連接您的第一個客戶受管政策*。

在您進行教學課程時，可使用本節所示的其中一個政策範例做為起點，並依您的需求進行自訂。教學課程結束時，您將有一個連接政策的 IAM 使用者可使用 `neptune-db:*` 動作。

**重要**  
最多需要 10 分鐘才能將 IAM 政策的變更套用到指定的 Neptune 資源。
已套用到 Neptune 資料庫叢集的 IAM 政策也會套用到該叢集中的所有執行個體。

## 使用不同種類的 IAM 政策來控制對 Neptune 的存取
<a name="iam-auth-policy"></a>

若要提供 Neptune 管理動作或 Neptune 資料庫叢集中資料的存取權，您可以將政策附加至 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 資料庫叢集的不同存取模式：
+ [管理政策陳述式](iam-admin-policies.md) – 管理政策陳述式可讓您存取 [Neptune 管理 API](api.md)，您可以使用這些 API 來建立、設定和管理資料庫叢集及其執行個體。

  因為 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)，控制如何存取資料庫叢集包含的資料。

  Neptune 資料存取動作、資源和條件金鑰會使用 `neptune-db:` 字首。

## 在 Amazon Neptune 中使用 IAM 條件內容金鑰
<a name="iam-using-condition-keys"></a>

您可以在控制 Neptune 存取權的 IAM 政策陳述式中指定條件。然後，政策陳述式只有在條件成立時才會生效。

例如，您可能想要政策陳述式只在特定日期之後生效，或者只有在請求中存在特定值時才允許存取。

若要表示條件，請在政策陳述式的 [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) 中使用預先定義的條件金鑰，搭配 [IAM 條件政策運算子](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.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>

最多需要 10 分鐘才能將 IAM 政策的變更套用到指定的 Neptune 資源。

已套用到 Neptune 資料庫叢集的 IAM 政策也會套用到該叢集中的所有執行個體。

Neptune 目前不支援資料平面層級的跨帳戶存取控制。只有在大量載入和使用角色鏈結時，才支援跨帳戶存取控制。如需詳細資訊，請參閱[大量載入教學課程。 ](https://docs.aws.amazon.com//neptune/latest/userguide/bulk-load-tutorial-chain-roles.html#bulk-load-tutorial-chain-cross-account)