翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon Neptune で IAM ロールを連鎖する
重要
エンジンリリース 1.2.1.0.R3 で導入された IAM ロールの連鎖を利用する新しい一括読み込みクロスアカウント機能では、一括読み込みのパフォーマンスが低下する場合があります。そのため、この機能をサポートするエンジンリリースへのアップグレードは、問題が解決されるまで一時的に中断されました。
クラスターにロールをアタッチすると、クラスターはそのロールを引き受けて、Amazon S3 に保存されているデータにアクセスできるようになります。エンジンリリース 1.2.1.0.R3 以降では、そのロールが必要なすべてのリソースにアクセスできない場合、クラスターが他のリソースにアクセスできるように引き受けることができる 1 つ以上の追加のロールを連鎖できます。チェーン内の各ロールは、クラスターがチェーンの末尾のロールを引き受けるまで、チェーン内の次のロールを引き受けます。
ロールを連鎖するには、ロール間で信頼関係を確立します。例えば、RoleB
を RoleA
に連鎖するには、RoleA
は RoleB
の引き受けを許可するアクセス許可ポリシーを持っている必要があり、RoleB
はそのアクセス許可を RoleA
に戻すことを許可する信頼ポリシーが必要です。詳細については、「IAM ロールの使用」を参照してください。
チェーン内の最初のロールは、データをロードするクラスターにアタッチされる必要があります。
最初のロールと、チェーン内の次のロールを引き受ける後続の各ロールには、以下のものが必要です。
sts:AssumeRole
アクションに対するAllow
効果を持つ特定のステートメントを含むポリシー。Resource
要素内の次のロールの Amazon リソースネーム (ARN)。
注記
ターゲット Amazon S3 バケットは、クラスターと同じ AWS リージョンに存在する必要があります。
連鎖したロールを使用したクロスアカウントアクセス
別のアカウントに属する 1 つまたは複数のロールを連鎖することによって、クロスアカウントアクセスを付与できます。クラスターが別のアカウントに属するロールを一時的に引き受けると、そのアカウントのリソースにアクセスできるようになります。
例えば、アカウント A がアカウント B に属する Amazon S3 バケットのデータにアクセスしたいとします。
アカウント A は、 という名前の Neptune AWS のサービスロールを作成し
RoleA
、クラスターにアタッチします。アカウント B は、アカウント B バケット内のデータにアクセスすることが承認されている
RoleB
という名前のロールを作成します。アカウント A は、
RoleB
を引き受けることを許可するアクセス許可ポリシーをRoleA
にアタッチします。アカウント B は、
RoleB
アクセス許可を渡すことができる信頼ポリシーをアタッチします。RoleA
アカウント B バケットのデータにアクセスするには、アカウント A は
RoleA
とRoleB
を連鎖するiamRoleArn
パラメータを使用してローダーコマンドを実行します。ローダー操作の継続期間中、RoleA
は一時的にRoleB
を引き受けて、アカウント B で Amazon S3 バケットにアクセスします。

例えば、RoleA
には、Neptune との信頼関係を確立する信頼ポリシーがあるとします。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
RoleA
には、アカウント B が所有する RoleB
を引き受けることを許可するアクセス許可ポリシーもあります。
{ "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 ローダーには、プライベート IP アドレスを介して AWS STS APIs にプライベートにアクセスするために IAM ロールを連鎖させる AWS STS 場合の VPC エンドポイントが必要です。Amazon VPC から VPC エンドポイント AWS STS を介して、安全でスケーラブルな方法で に直接接続できます。インターフェイス VPC エンドポイントを使用すると、アウトバウンドトラフィックのファイアウォールを開く必要がないため、セキュリティ体制が強化されます。また、Amazon VPC エンドポイントを使用する利点は他にもあります。
VPC エンドポイントを使用する場合、 へのトラフィック AWS STS はインターネット経由で送信されず、Amazon ネットワークを離れることもありません。VPC は、ネットワークトラフィックの可用性リスクや帯域幅の制約 AWS STS なしに、 に安全に接続されます。詳細については、「AWS STS インターフェイス VPC エンドポイントの使用」を参照してください。
( AWS Security Token Service STS) のアクセスを設定するには
にサインイン AWS Management Console し、https://console.aws.amazon.com/vpc/
で Amazon VPC コンソールを開きます。 ナビゲーションペインで、[エンドポイント] を選択します。
[エンドポイントの作成] を選択します。
インターフェイスタイプのエンドポイントの サービス名
com.amazonaws.region.sts
を選択します。Neptune DB インスタンスと EC2 インスタンスが含まれている VPC を選択します。
EC2 インスタンスが存在するサブネットの横にあるチェックボックスを選択します。同じアベイラビリティーゾーンから複数のサブネットを選択することはできません。
-
[IP address type] (IP アドレスのタイプ) で、次のオプションから選択します。
[IPv4] — IPv4 アドレスをエンドポイントのネットワークインターフェイスに割り当てます。このオプションは、選択したすべてのサブネットに IPv4 アドレス範囲がある場合にのみサポートされます。
[IPv6] — IPv6 アドレスをエンドポイントのネットワークインターフェイスに割り当てます。このオプションは、選択されたすべてのサブネットが IPv6 のみのサブネットである場合にのみサポートされます。
[Dualstack] — IPv4 と IPv6 の両方のアドレスをエンドポイントのネットワークインターフェイスに割り当てます。このオプションは、選択したすべてのサブネットに IPv4 と IPv6 の両方のアドレス範囲がある場合にのみサポートされます。
[セキュリティグループ] で、VPC エンドポイントのエンドポイントネットワークインターフェイスに関連付けるセキュリティグループを選択します。Neptune DB インスタンスと EC2 インスタンスにアタッチされているすべてのセキュリティグループを選択する必要があります。
[Policy] (ポリシー) で [Full access] (フルアクセス) を選択して、すべてのリソースに対するすべてのプリンシパルによる VPC エンドポイント経由のすべてのオペレーションを許可します。それ以外の場合は、[Custom] (カスタム) を選択して、VPC エンドポイント経由でリソースに対してアクションを実行するためにプリンシパルが持つ許可を制御する VPC エンドポイントポリシーをアタッチします。このオプションは、サービスが VPC エンドポイントポリシーをサポートしている場合にのみ使用できます。詳細については、「エンドポイントポリシー」を参照してください。
(オプション) タグを追加するには、[新しいタグを追加] を選択し、そのタグのキーと値を入力します。
[エンドポイントの作成] を選択します。
エンドポイント作成の詳細については、「Amazon VPC ユーザーガイド」の「VPC エンドポイント」を参照してください。Amazon STS VPC エンドポイントは IAM ロール連鎖に必要な前提条件であることに注意してください。
AWS STS エンドポイントへのアクセスを許可したので、データのロードを準備できます。サポートされる形式の詳細については、「データ読み込み形式」を参照してください。
ローダーコマンド内でのロールの連鎖
iamRoleArn
パラメータにロールの ARN のカンマ区切りリストを含めることによって、ローダーコマンドの実行時にロールの連鎖を指定できます。
ほとんどの場合、チェーンに含める必要があるのは 2 つのロールだけですが、3 つ以上のロールを連鎖することも可能です。例えば、このローダーコマンドは次の 3 つのロールを連鎖します。
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" }'