Amazon Neptune 中的鏈接IAM角色 - Amazon Neptune

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

Amazon Neptune 中的鏈接IAM角色

重要

利用鏈結IAM角色的引擎版本 1.2.1.0.R3 中引入的新大量載入跨帳戶功能,在某些情況下可能會導致您觀察到大量負載效能降低的情況。因此,已暫時暫停升級至支援此功能的引擎版本,直到此問題得到解決為止。

當您將角色附加至叢集時,您的叢集可以擔任該角色,代表您存取 Amazon S3 中儲存的資料。從引擎版本 1.2.1.0.R3 開始,如果該角色無法存取您需要的所有資源,您可以鏈結您的叢集可以擔任的一或多個其他角色,以取得其他資源的存取權。鏈結中的每個角色都會擔任鏈結中的下一個角色,直到您的叢集已擔任鏈結尾端的角色為止。

若要鏈結這些角色,請在它們之間建立信任關係。例如,若要將 RoleB 鏈接至 RoleARoleA 必須具有允許它擔任 RoleB 的許可政策,而且 RoleB 必須具有允許其將其許可傳回 RoleA 的信任政策。如需詳細資訊,請參閱使用IAM角色

鏈結中的第一個角色必須附加至正在載入資料的叢集。

第一個角色以及擔任鏈結中隨後角色的每個後續角色必須具有:

  • 包含對 sts:AssumeRole 動作具有 Allow 效果之特定陳述式的政策。

  • Resource元素中下一個角色的 Amazon 資源名稱 (ARN)。

注意

目標 Amazon S3 儲存貯體必須與叢集位於相同的 AWS 區域。

使用鏈結的角色進行跨帳戶存取

您可以鏈結屬於另一個帳戶的一個或多個角色來授與跨帳戶存取權。當您的叢集暫時擔任屬於另一個帳戶的角色時,它可以取得該處資源的存取權。

例如,假設帳戶 A 想要存取屬於帳戶 B 的 Amazon S3 儲存貯體中的資料:

  • 帳戶 A 會為名為的 Neptune 建立 AWS 服務角色,RoleA並將其附加至叢集。

  • 帳戶 B 會建立一個名為 RoleB 的角色,其獲授權可以存取帳戶 B 儲存貯體中的資料。

  • 帳戶 A 會將許可政策附加至 RoleA,允許其擔任 RoleB

  • 帳戶 B 會將信任策略附加至 RoleB,允許其將其許可傳回 RoleA

  • 若要存取帳戶 B 儲存貯體中的資料,帳戶 A 會使用鏈結 RoleARoleBiamRoleArn 參數執行載入器命令。在載入器操作期間,RoleA 接著會暫時擔任 RoleB,以存取帳戶 B 中的 Amazon S3 儲存貯體。

說明使用鏈結的角色進行跨帳戶存取的圖表

例如,RoleA 會有一個與 Neptune 建立信任關係的信任政策:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

RoleA 還會有一個允許它擔任 RoleB 的許可政策,此角色是帳戶 B 擁有的:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1487639602000", "Effect": "Allow", "Action": [ "sts:AssumeRole" ], "Resource": "arn:aws:iam::(Account B ID):role/RoleB" } ] }

相反地,RoleB 會有一個信任政策,與 RoleA 建立信任關係:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Principal": { "AWS": "arn:aws:iam::(Account A ID):role/RoleA" } } ] }

RoleB 還需要許可,才能存取位於帳戶 B 的 Amazon S3 儲存貯體中的資料。

建立 AWS Security Token Service (STS) VPC 端點

Neptune 載入程式需要VPC端點,以便將IAM角色鏈結為 AWS STS APIs透過私有 IP 位址進行私人存取 AWS STS 時。您可以以安全且可擴展 AWS STS 的方式直接從 Amazon 連接VPC到VPC端點。當您使用介面VPC端點時,它會提供更好的安全性狀態,因為您不需要開啟輸出流量防火牆。它還提供了使用 Amazon VPC 端點的其他好處。

使用VPC端點時,流量 AWS STS 不會透過網際網路傳輸,也不會離開 Amazon 網路。您VPC可以安全地連接到網絡流量 AWS STS 沒有可用性風險或帶寬限制。如需詳細資訊,請參閱使用 AWS STS 介面VPC端點

若要設定 AWS Security Token Service (STS) 的存取權
  1. 登錄 AWS Management Console 並在打開 Amazon VPC 控制台https://console.aws.amazon.com/vpc/

  2. 在導覽窗格中選擇端點

  3. 選擇建立端點

  4. 為介面類型端點選擇服務名稱com.amazonaws.region.sts

  5. 選擇包VPC含 Neptune 資料庫執行個體和執行個EC2體的項目。

  6. 選取EC2執行個體所在子網路旁邊的核取方塊。您無法在相同的可用區域內選取多個子網路。

  7. 針對 IP address type (IP 地址類型),從下列選項中選擇:

    • IPv4— 為您的端點網路介面指派IPv4位址。只有在所有選取的子網路都有IPv4位址範圍時,才支援此選項。

    • IPv6— 為您的端點網路介面指派IPv6位址。只有當IPv6所有選取的子網路都只有子網路時,才支援此選項。

    • Dualstack — 將IPv4和IPv6位址指派給您的端點網路介面。只有在所有選取的子網路都具有IPv4和IPv6位址範圍時,才支援此選項。

  8. 對於安全群組,請選取要與端點的端點網路介面關聯的安全群組。VPC您需要選取連接到 Neptune 資料庫執行個體和EC2執行個體的所有安全群組。

  9. 對於「策略」,選取「完整存取」以允許VPC端點上所有資源上的所有主體執行所有作業。否則,請選取「自訂」以附加VPC端點策略,該策略可控制主體在VPC端點上對資源執行動作所具有的權限。只有在服務支援VPC端點策略時,才能使用此選項。如需詳細資訊,請參閱端點政策

  10. (選用) 若要新增標籤,請選擇新增標籤,然後輸入您想要的標籤金鑰和標籤值。

  11. 選擇建立端點

如需有關建立端點的資訊,請參閱 Amazon VPC 使用者指南中的VPC端點。請注意,Amazon STS VPC 端點是IAM角色鏈結的必要先決條件。

現在您已授與 AWS STS 端點的存取權,您可以準備載入資料。如需有關支援格式的相關資訊,請參閱載入資料格式

在載入器命令內鏈結角色

您可以在執行載入程式命令時指定角色鏈結,方法是在參數中加入逗號分隔ARNs的 iamRoleArn role 清單。

儘管您大多只需要在鏈結中具有兩個角色,但當然可以同時鏈結三個以上的角色。例如,此載入器命令會鏈結三個角色:

curl -X POST https://localhost:8182/loader \ -H 'Content-Type: application/json' \ -d '{ "source" : "s3://(the target bucket name)/(the target date file name)", "iamRoleArn" : "arn:aws:iam::(Account A ID):role/(RoleA),arn:aws:iam::(Account B ID):role/(RoleB),arn:aws:iam::(Account C ID):role/(RoleC)", "format" : "csv", "region" : "us-east-1" }'