開発エンドポイントでノートブックを使用する予定がある場合は、IAM ロールアクセス権限を与える必要 があります。IAM ロールを通して AWS Identity and Access Management を使用してアクセス権限を提供 できます。
Note
IAM コンソールを使用して IAM ロールを作成すると、コンソールによりインスタンスプロファイ ルが自動的に作成され、対応するロールと同じ名前が付けられます。
ノートブックの IAM ロールを作成するには
1. AWS マネジメントコンソール にサインインし、IAM コンソール(https://console.aws.amazon.com/
iam/)を開きます。
2. 左のナビゲーションペインで、[Roles] を選択します。
3. [Create role] を選択します。
4. ロールタイプについては、[AWS サービス] を選択し、[EC2] を見つけて選択して、[EC2] ユースケー スを選択し、[次へ: アクセス権限] を選択します。
シー [AmazonS3FullAccess] などの必要なアクセス権限を含むポリシーを選択します。続いて、[Next:
Review] を選択します。
Note
このロールのポリシーの 1 つが Amazon S3 のソースとターゲットにアクセス権限を与え ていることを確認してください。また、ノートブックサーバーの作成時にノートブックを 保管する場所へのフルアクセスがポリシーで許可されていることを確認してください。特 定の Amazon S3 リソースにアクセスするための独自のポリシーを提供します。リソースの Amazon S3 ポリシーの作成の詳細については、ポリシーでのリソースの指定を参照してくだ さい。SSE-KMS で暗号化された Amazon S3 のソースとターゲットにアクセスする予定がある場合 は、ノートブックがデータを復号化できるポリシーをアタッチしてください。詳細について は、「AWS KMS で管理されたキーによるサーバー側の暗号化 (SSE-KMS) を使用したデー タの保護」を参照してください。以下に例を示します。
{ "Version":"2012-10-17", "Statement":[
{
"Effect":"Allow", "Action":[
"kms:Decrypt"
],
"Resource":[
"arn:aws:kms:*:account-id-without-hyphens:key/key-id"
] } ] }
6. [Role name] に、ロールの名前を入力します。コンソールユーザーからノートブックサー バーにロールを渡すには、文字列 [AWSGlueServiceNotebookRole] のプレフィックスが付 けられたロールを作成します。AWS Glue が提供するポリシーでは、IAM サービスロールが
[AWSGlueServiceNotebookRole] で始まると予測しています。それ以外の場合は、ポリシーを追加し て、IAM ロールの iam:PassRole アクセス権限がユーザーの命名規則に一致するようにする必要が あります。たとえば、[AWSGlueServiceNotebookRoleDefault] と入力します。 続いて、[Create role]
を選択します。
VPC での DNS のセットアップ
ドメインネームシステム (DNS) は、インターネットで使用する名前を対応する IP アドレスに解決するた めの標準です。DNS ホスト名は、ホスト名とドメイン名で構成され、コンピュータに一意の名前を付けま す。DNS サーバーは DNS ホスト名を対応する IP アドレスに解決します。名前解決にカスタム DNS を使 用する場合、DNS 前方参照と DNS 逆引き参照の両方を実装する必要があります。
VPC で DNS をセットアップするには、DNS ホスト名と DNS 解決の両方が VPC で有効になってい ることを確認します。VPC ネットワーク属性の enableDnsHostnames と enableDnsSupport を true に設定する必要があります。これらの属性を表示および変更するには、VPC コンソール (https://
console.aws.amazon.com/vpc/) に移動します。
詳細については、「Using DNS with Your VPC」を参照してください。
Note
データストアにアクセスするための環境のセット アップ
抽出、変換、およびロード (ETL) ジョブを実行するには、AWS Glue がデータストアにアクセスできる必 要があります。Virtual Private Cloud (仮想プライベートクラウド) (VPC) サブネットでジョブを実行する必 要がない場合 (たとえば、Amazon S3 から Amazon S3 へのデータ変換)、追加の設定は必要ありません。
VPC のサブネットでジョブを実行する必要がある場合、AWS Glue は ジョブを VPC 内の他のリソースに 安全に接続できるようにする 伸縮自在なネットワークインターフェイス を設定します。それぞれの伸縮自 在なネットワークインターフェイスには、指定したサブネット内の IP アドレス範囲からプライベート IP アドレスが割り当てられます。パブリック IP アドレスは割り当てられません。指定されたセキュリティグ ループは、伸縮自在なネットワークインターフェイスに適用されます。
ジョブによってアクセスされるすべての JDBC データストアは、VPC サブネットから使用できる必要があ ります。VPC 内から Amazon S3 にアクセスするには VPC エンドポイント (p. 25) が必須です。ジョブ が VPC リソースとパブリックインターネットの両方にアクセスする必要がある場合、 VPC は VPC 内に ネットワークアドレス変換 (NAT) ゲートウェイを持つ必要があります。
ジョブまたは開発エンドポイントは、一度に 1 つの VPC (およびサブネット) にのみアクセスできます。
異なる VPC のデータストアにアクセスする必要がある場合は、次のオプションがあります。
• VPC ピア接続を使用してデータストアにアクセスします。VPC ピア接続の詳細については、「VPC ピ ア接続の基本」を参照してください。
• 中間ストレージの場所として Amazon S3 バケットを使用します。ジョブ 1 の Amazon S3 出力をジョブ 2 への入力として、作業を 2 つのジョブに分割します。
JDBC データストアの場合、データストアに接続するために必要なプロパティを使用して AWS Glue で接 続を作成します。接続の詳細については、「データストアへの接続の追加 (p. 80)」を参照してくださ い。
Note
AWS Glue の DNS 環境を必ず設定してください。詳細については、「VPC での DNS のセット アップ (p. 24)」を参照してください。
トピック
• Amazon S3 における Amazon VPC エンドポイント (p. 25)
• JDBC データストアに接続するための VPC の設定 (p. 27)
Amazon S3 における Amazon VPC エンドポイント
セキュリティ上の理由から、多数の AWS ユーザーがアプリケーションを Amazon Virtual Private Cloud 環 境 (Amazon VPC) 内で実行しています。Amazon VPC を使用すると、Amazon EC2 インスタンスを仮想 プライベートクラウドで作成できます。そのため、パブリックインターネットなどの他のネットワークか ら論理的に分離されます。Amazon VPC を使用すると、IP アドレス範囲、サブネット、ルーティングテー ブル、ネットワークゲートウェイ、セキュリティ設定を適切に制御できます。
Note
2013 年 12 月 4 日以降に AWS アカウントを作成した場合は、各 AWS リージョンにデフォルト で VPC が用意されています。追加設定なしにデフォルトの VPC をすぐに使用できます。
詳細については、「デフォルトの VPC とサブネット」 (Amazon VPC ユーザーガイド) を参照し てください。
多くのお客様が、パブリックインターネット間のデータ送受信に関して、プライバシーとセキュリティに 関する正当な懸念を抱いています。これらの懸念事項を解決するために、仮想プライベートネットワーク
る場合があります。
Amazon S3 の VPC エンドポイントでは、これらの課題は軽減されます。Amazon S3 の VPC エンドポイ ントを使用することで、AWS Glue はプライベート IP アドレスを使用して、パブリックインターネットに 公開されることなく Amazon S3 にアクセスできるようになります。AWS Glue はパブリック IP アドレス を必要とせず、VPC にインターネットゲートウェイ、NAT デバイス、仮想プライベートゲートウェイは 不要です。Amazon S3 へのアクセスを制御するには、エンドポイントのポリシーを使用します。VPC と AWS サービス間のトラフィックは、Amazon ネットワークを離れません。
Amazon S3 の VPC エンドポイントを作成する際、リージョン内の Amazon S3 エンドポイント (例:
s3.us-west-2.amazonaws.com) に対するリクエストはすべて、Amazon ネットワーク内のプライベートの Amazon S3 エンドポイントにルーティングされます。VPC の EC2 インスタンスで実行されているアプリ ケーションを変更する必要はありません。エンドポイント名は変わりませんが、Amazon S3 へのルート は、Amazon ネットワーク内に完全にとどまり、パブリックインターネットにアクセスすることはありま せん。
VPC エンドポイントの詳細については、Amazon VPC ユーザーガイド の VPC エンドポイントを参照して ください。
AWS Glue が VPC エンドポイントを使用して Amazon S3 にアクセスする様子を次の図に示します。
Amazon S3 のアクセスをセットアップするには
3. [エンドポイントの作成] 選択し、ステップに従って VPC 内に Amazon S3 エンドポイントを作成しま す。
JDBC データストアに接続するための VPC の設定
AWS Glue コンポーネントが通信できるようにするには、Amazon Redshift や Amazon RDS などのデータ ストアへのアクセスを設定する必要があります。AWS Glue がコンポーネント間で通信できるようにする には、すべての TCP ポートに対して自己参照のインバウンドルールを持つセキュリティグループを指定し ます。自己参照ルールを作成することで、ソースを VPC 内の同じセキュリティグループに制限すること ができ、ネットワーク全体には公開されません。VPC のデフォルトのセキュリティグループには、すでに ALL Traffic (すべてのトラフィック) の自己参照インバウンドルールがある場合があります。
Amazon Redshift データストアへのアクセスを設定するには
1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://
console.aws.amazon.com/redshift/)を開きます。
2. 左のナビゲーションペインで [Clusters] (クラスター) を選択します。
3. AWS Glue からアクセスするクラスターの名前を選択します。
4. [Cluster Properties] (クラスターのプロパティ) セクションで、[VPC security groups] (VPC セキュリ ティグループ) 内のセキュリティグループを選択し、AWS Glue が使用できるようにします。今後 の参照用に選択したセキュリティグループの名前を記録します。セキュリティグループを選択する と、Amazon EC2 コンソールの [Security Groups] (セキュリティグループ) の一覧が開きます。
5. 変更するセキュリティグループを選択し、[Inbound] (インバウンド) タブに移動します。
6. 自己参照ルールを追加して、AWS Glue コンポーネントが通信できるようにします。具体的には、
[Type] (タイプ) All TCP、[Protocol] (プロトコル) は TCP、[Port Range] (ポート範囲) にはすべての ポートが含まれ、[Source] (ソース) は [Group ID] (グループ ID) と同じセキュリティグループ名である というルールを追加または確認します。
インバウンドルールは以下のようになります。
タイプ プロトコル ポート範囲 送信元
すべての TCP TCP 0–65535 database-security-group
以下に例を示します。
範囲) にすべてのポートが含まれ、[Source] (ソース) は [Group ID] (グループ ID) と同じセキュリティ グループ名の自己参照ルールを作成します。
アウトバウンドルールは、次のいずれかのルールのようになります。
タイプ プロトコル ポート範囲 送信先
すべての TCP TCP 0–65535 security-group
すべてのトラフィック ALL ALL 0.0.0.0/0
Amazon RDS データストアへのアクセスを設定するには
1. AWS マネジメントコンソールにサインインし、Amazon RDS コンソール (https://
console.aws.amazon.com/rds/) を開きます。
2. 左のナビゲーションペインの [Instances] を選択します。
3. AWS Glue からアクセスする Amazon RDS [Engine] (エンジン) と [DB Instance] (DB インスタンス) 名 を選択します。
4. [Instance Actions] (インスタンスの操作) から [See Details] (詳細を表示) を選択します。[Details] (詳 細) タブで、AWS Glue からアクセスする [Security Groups] (セキュリティグループ) を見つけます。
今後の参照用にセキュリティグループの名前を記録します。
5. セキュリティグループを選択して Amazon EC2 コンソールを開きます。
6. Amazon RDS の [Group ID] (グループ ID) が選択されていることを確認し、[Inbound] (インバウンド) タブを選択します。
7. 自己参照ルールを追加して、AWS Glue コンポーネントが通信できるようにします。具体的には、
[Type] (タイプ) All TCP、[Protocol] (プロトコル) は TCP、[Port Range] (ポート範囲) にはすべての ポートが含まれ、[Source] (ソース) は [Group ID] (グループ ID) と同じセキュリティグループ名である というルールを追加または確認します。
インバウンドルールは次のようになります。
タイプ プロトコル ポート範囲 送信元
すべての TCP TCP 0–65535 database-security-group
以下に例を示します。