使用 IAM 政策管理對 Amazon Neptune 資料庫的存取 - Amazon Neptune

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

使用 IAM 政策管理對 Amazon Neptune 資料庫的存取

IAM 政策是 JSON 物件,可定義使用動作和資源的許可。

您可以透過建立政策並將其連接到 AWS 身分或資源 AWS 來控制 中的存取。政策是 中的物件, AWS 當與身分或資源建立關聯時, 會定義其許可。當委託人 (使用者、根使用者或角色工作階段) 提出請求時, 會 AWS 評估這些政策。政策中的許可決定是否允許或拒絕請求。大多數政策會以 JSON 文件 AWS 的形式存放在 中。如需 JSON 政策文件結構和內容的詳細資訊,請參閱 IAM 使用者指南中的 JSON 政策概觀

管理員可以使用 AWS JSON 政策來指定誰可以存取內容。也就是說,哪個主體在什麼條件下可以對什麼資源執行哪些動作

預設情況下,使用者和角色沒有許可。若要授予使用者對其所需資源執行動作的許可,IAM 管理員可以建立 IAM 政策。然後,管理員可以將 IAM 政策新增至角色,使用者便能擔任這些角色。

IAM 政策定義該動作的許可,無論您使用何種方法來執行操作。例如,假設您有一個允許 iam:GetRole 動作的政策。具有該政策的使用者可以從 AWS Management Console、 AWS CLI或 API AWS 取得角色資訊。

身分型政策

身分型政策是可以附加到身分 (例如 IAM 使用者、使用者群組或角色) 的 JSON 許可政策文件。這些政策可控制身分在何種條件下能對哪些資源執行哪些動作。如需了解如何建立身分型政策,請參閱《IAM 使用者指南》中的透過客戶管理政策定義自訂 IAM 許可

身分型政策可進一步分類成內嵌政策受管政策。內嵌政策會直接內嵌到單一使用者、群組或角色。受管政策是獨立的政策,您可以連接到 中的多個使用者、群組和角色 AWS 帳戶。受管政策包括 AWS 受管政策和客戶受管政策。如需了解如何在受管政策及內嵌政策之間選擇,請參閱《IAM 使用者指南》中的在受管政策和內嵌政策間選擇

搭配 AWS 組織使用服務控制政策 (SCP)

服務控制政策 SCPs) 是 JSON 政策,可指定 中組織或組織單位 (OU) 的最大許可AWS Organizations。 AWS Organizations 是一項服務,用於分組和集中管理您企業擁有的多個 AWS 帳戶。若您啟用組織中的所有功能,您可以將服務控制政策 (SCP) 套用到任何或所有帳戶。SCP 會限制成員帳戶中實體的許可,包括每個 AWS 帳戶根使用者。如需 Organizations 和 SCPs的詳細資訊,請參閱 AWS Organizations 《 使用者指南》中的 SCPs運作方式

在 AWS 組織內的 AWS 帳戶中部署 Amazon Neptune 的客戶可以利用 SCPs 來控制哪些帳戶可以使用 Neptune。為了確保存取成員帳戶中的 Neptune,請務必:

使用 Amazon Neptune 主控台所需的許可

對於使用 Amazon Neptune 主控台的使用者,該使用者必須擁有一組符合最低限制的許可。這些許可允許使用者描述其 AWS 帳戶的 Neptune 資源,並提供其他相關資訊,包括 Amazon EC2 安全性和網路資訊。

如果您建立比最基本必要許可更嚴格的 IAM 政策,則對於採取該 IAM 政策的使用者而言, 主控台就無法如預期運作。為了確保這些使用者仍可使用 Neptune 主控台,也請將 NeptuneReadOnlyAccess 受管政策連線至使用者,如 使用 AWS 受管政策來存取 Amazon Neptune 資料庫 中所述。

對於僅對 AWS CLI 或 Amazon Neptune API 進行呼叫的使用者,您不需要允許最低主控台許可。

將 IAM 政策附加至 IAM 使用者

若要套用受管或自訂政策,請將它附加至 IAM 使用者。如需此主題的教學,請參閱 IAM 使用者指南中的建立和連接您的第一個客戶受管政策

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

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

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

使用不同種類的 IAM 政策來控制對 Neptune 的存取

若要提供 Neptune 管理動作或 Neptune 資料庫叢集中資料的存取權,您可以將政策附加至 IAM 使用者或角色。如需如何將 IAM 政策附加至使用者的相關資訊,請參閱 將 IAM 政策附加至 IAM 使用者。如需將政策附加到角色的相關資訊,請參閱《IAM 使用者指南》中的新增與移除 IAM 政策

如需對 Neptune 的一般存取,您可以使用 Neptune 的其中一個受管政策。如需更受限制的存取,您可以使用 Neptune 支援的管理動作資源來建立自己的自訂政策。

在自訂 IAM 政策中,您可以使用兩個不同種類的政策陳述式,控制 Neptune 資料庫叢集的不同存取模式:

  • 管理政策陳述式 – 管理政策陳述式可讓您存取 Neptune 管理 API,您可以使用這些 API 來建立、設定和管理資料庫叢集及其執行個體。

    因為 Neptune 與 Amazon RDS 共用功能,所以 Neptune 政策中的管理動作、資源和條件金鑰會依設計使用 rds: 字首。

  • 資料存取政策聲明 – 資料存取政策陳述式會使用資料存取動作資源條件金鑰,控制如何存取資料庫叢集包含的資料。

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

在 Amazon Neptune 中使用 IAM 條件內容金鑰

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

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

若要表示條件,請在政策陳述式的 Condition 中使用預先定義的條件金鑰,搭配 IAM 條件政策運算子,例如等於或小於。

若您在陳述式中指定多個 Condition 元素,或是在單一 Condition 元素中指定多個索引鍵, AWS 會使用邏輯 AND 操作評估他們。如果您為單一條件索引鍵指定多個值, 會使用邏輯OR操作 AWS 評估條件。必須符合所有條件,才會授與陳述式的許可。

您也可以在指定條件時使用預留位置變數。例如,您可以只在使用者使用其 IAM 使用者名稱標記時,將存取資源的許可授予該 IAM 使用者。如需詳細資訊,請參閱《IAM 使用者指南》中的 IAM 政策元素:變數和標籤

條件金鑰的資料類型會判斷您可以使用哪些條件運算子,來將請求中的值與政策陳述式中的值比較。如果您使用與該資料類型不相容的條件運算子,則比對一律失敗且政策陳述式永不套用。

Neptune 支援管理政策陳述式與資料存取政策陳述式各有不同的條件金鑰集:

支援 Amazon Neptune 中的 IAM 政策和存取控制功能

下表顯示 Neptune 針對管理政策陳述式和資料存取政策陳述式支援的 IAM 功能:

您可以搭配 Neptune 使用的 IAM 功能
IAM 功能 管理 資料存取

身分型政策

資源型政策

政策動作

政策資源

全域條件鍵

(子集)

標籤型條件金鑰

存取控制清單 (ACL)

服務控制政策 (SCP)

服務連結角色

IAM 政策限制

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

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

Neptune 目前不支援跨帳戶存取控制。