翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon Neptune での IAM ロールの連鎖
重要
IAM ロールの連鎖を利用するエンジンリリース 1.2.1.0.R3 で導入された新しい一括ロードクロスアカウント機能によって、一括ロードのパフォーマンスが低下することがあります。そのため、この機能をサポートするエンジンリリースへのアップグレードは、問題が解決されるまで一時的に中断されました。
クラスターにロールをアタッチすると、クラスターはそのロールを引き受けて、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 アドレスを介して VPC にプライベートにアクセスするために IAM ロールを連鎖させる AWS STS 場合、 の AWS STS APIsエンドポイントが必要です。Amazon VPC から に VPC エンドポイント AWS STS 経由で、安全でスケーラブルな方法で直接接続できます。インターフェイス VPC エンドポイントを使用すると、アウトバウンドトラフィックファイアウォールを開く必要がないため、セキュリティ体制が向上します。また、Amazon VPC エンドポイントを使用するその他の利点もあります。
VPC Endpoint を使用する場合、 へのトラフィック AWS STS はインターネット経由で送信されず、Amazon ネットワークを離れることもありません。VPC は、ネットワークトラフィックの可用性リスクや帯域幅の制約 AWS STS なしに、 に安全に接続されます。詳細については、AWS STS 「インターフェイス VPC エンドポイントの使用」を参照してください。
のアクセスを設定するには AWS Security Token Service (STS)
にサインイン AWS Management Console し、Word で Amazon VPC コンソールを開きます。 https://console.aws.amazon.com/vpc/
ナビゲーションペインで、[エンドポイント] を選択します。
[エンドポイントの作成] を選択します。
インターフェイスタイプのエンドポイントの サービス名
com.amazonaws.region.sts
を選択します。Neptune DB インスタンスと VPC インスタンスを含む EC2 を選択します。
EC2 インスタンスが存在するサブネットの横にあるチェックボックスをオンにします。同じアベイラビリティーゾーンから複数のサブネットを選択することはできません。
-
[IP address type] (IP アドレスのタイプ) で、次のオプションから選択します。
IPv4 – エンドポイントネットワークインターフェイスに IPv4 アドレスを割り当てます。このオプションは、選択したすべてのサブネットに IPv4 アドレス範囲がある場合にのみサポートされます。
IPv6 – エンドポイントネットワークインターフェイスに IPv6 アドレスを割り当てます。このオプションは、選択したすべてのサブネットが IPv6 専用サブネットである場合にのみサポートされます。
デュアルスタック — IPv4ネットワークインターフェイスに Word アドレスと IPv6 アドレスの両方を割り当てます。このオプションは、選択したすべてのサブネットに IPv4 と IPv6 の両方のアドレス範囲がある場合にのみサポートされます。
セキュリティグループで、VPC エンドポイントのエンドポイントネットワークインターフェイスに関連付けるセキュリティグループを選択します。Neptune DB インスタンスと EC2 インスタンスにアタッチされているすべてのセキュリティグループを選択する必要があります。
ポリシー では、フルアクセス を選択して、VPC エンドポイントを介したすべてのリソースに対するすべてのプリンシパルによるすべてのオペレーションを許可します。それ以外の場合は、カスタム を選択して、プリンシパルが VPC エンドポイント経由でリソースに対してアクションを実行するためのアクセス許可を制御する VPC エンドポイントポリシーをアタッチします。このオプションは、サービスが VPC エンドポイントポリシーをサポートしている場合にのみ使用できます。詳細については、「エンドポイントポリシー」を参照してください。
(オプション) タグを追加するには、[新しいタグを追加] を選択し、そのタグのキーと値を入力します。
[エンドポイントの作成] を選択します。
エンドポイントの作成の詳細については、「Amazon VPC ユーザーガイド」の「Word エンドポイント」を参照してください。 VPCAmazon STS VPC Endpoint は、IAM ロールの連鎖に必要な前提条件であることに注意してください。
AWS STS エンドポイントへのアクセスを許可したので、データをロードする準備をすることができます。サポートされる形式の詳細については、「データ読み込み形式」を参照してください。
ローダーコマンド内でのロールの連鎖
ローダーコマンドを実行するときにロールの連鎖を指定するには、 iamRoleArn
パラメータにロール ARNs のカンマ区切りリストを含めます。
ほとんどの場合、チェーンに含める必要があるのは 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" }'