AWS Data Pipeline のセットアップ - AWS Data Pipeline

英語の翻訳が提供されている場合で、内容が矛盾する場合には、英語版がオリジナルとして取り扱われます。翻訳は機械翻訳により提供されています。

AWS Data Pipeline のセットアップ

AWS Data Pipeline を初めて使用する場合は、事前に以下のタスクをすべて実行してください。

これらのタスクの完了後、AWS Data Pipeline の使用を開始できます。基本的なチュートリアルについては、「AWS Data Pipeline の使用開始」を参照してください。

AWS にサインアップする

アマゾン ウェブ サービス(AWS)にサインアップすると、AWS アカウントが AWS 内のすべてのサービス(AWS Data Pipeline など)に自動的にサインアップされます。料金が発生するのは、実際に使用したサービスの分のみです。AWS Data Pipeline の使用料の詳細については、「AWS Data Pipeline」を参照してください。

既に AWS アカウントをお持ちの場合は次のタスクに進んでください。AWS アカウントをお持ちでない場合は、次に説明する手順にしたがってアカウントを作成してください。

AWS アカウントを作成するには

  1. https://portal.aws.amazon.com/billing/signup を開きます。

  2. オンラインの手順に従います。

    サインアップ手順の一環として、通話呼び出しを受け取り、電話のキーパッドを用いて確認コードを入力することが求められます。

必須の IAM ロールの作成 (CLI または API のみ)

AWS Data Pipeline では、パイプラインでどのようなアクションを実行でき、どのリソースにアクセスできるかを IAM ロールで定義する必要があります。さらに、パイプラインで EC2 インスタンスや EMR クラスターなどのリソースを作成すると、IAM ロールによって、アプリケーションが実行できるアクションとアクセスできるリソースが決まります。

AWS Data Pipeline コンソールでは、次のロールが自動的に作成されます。

  • DataPipelineDefaultRole は AWS Data Pipeline に AWS リソースへのアクセスを許可します

  • DataPipelineDefaultResourceRole は EC2 インスタンス上のアプリケーションが AWS リソースにアクセスすることを許可します

以前に AWS Data Pipeline を使用し IAM ロールの既存のバージョンがある場合は、更新が必要になる場合があります。詳細については、「AWS Data Pipeline の既存の IAM ロールを更新する」を参照してください。

CLI または API を使用しており、これまでに AWS Data Pipeline コンソールを使用してパイプラインを作成したことがない場合は、AWS Identity and Access Management (IAM) を使用してこれらのロールを手動で作成する必要があります。

手動で必須の IAM ロールを作成するには

  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. 次のように DataPipelineDefaultRole ロールを作成します。

    1. ナビゲーションペインで [Roles]、[Create New Role] の順に選択します。

    2. [Set Role Name] ページで、[Role name] として DataPipelineDefaultRole を入力します。

    3. [Select Role Type] ページの [AWS Service Roles] で、[AWS Data Pipeline] の行の [Select] を選択します。

    4. [Attach Policy] ページで、[AWSDataPipelineRole] ポリシーを選択し、[Next Step] を選択します。

    5. [Review] ページで、[Create Role] を選択します。

  3. 次のように DataPipelineDefaultResourceRole ロールを作成します。

    1. ナビゲーションペインで [Roles]、[Create New Role] の順に選択します。

    2. [Set Role Name] ページで、[Role name] として DataPipelineDefaultResourceRole を入力します。

    3. [Select Role Type] ページの [AWS Service Roles] で、[Amazon EC2 Role for Data Pipeline] の行の [Select] を選択します。

    4. [Attach Policy] ページで、AmazonEC2RoleforDataPipelineRole ポリシーを選択し、[Next Step] を選択します。

    5. [Review] ページで、[Create Role] を選択します。

また、代わりにカスタムロールを作成し使用できます。EmrCluster オブジェクト用にカスタムロールを指定する方法の詳細については、「カスタム IAM ロールを指定する」を参照してください。

PassRole を持つ管理ポリシーを事前定義された IAM ロールに割り当てる

アカウントの AWS Data Pipeline のすべてのユーザーには、DataPipelineDefaultRole および DataPipelineDefaultResourceRole 事前定義済みロールへの、または、AWS Data Pipeline にアクセスするために使用する他のカスタムロールへの、"Action":"iam:PassRole" アクセス権限が必要です。

このようなユーザーのユーザーグループを作成して、管理ポリシー AWSDataPipeline_FullAccess をそこにアタッチすると便利です。この管理ポリシーにより、AWS Data Pipeline で使用されるロールに対する "Action":"iam:PassRole" アクセス権限がユーザーに付与されます。

このタスクでは、ユーザーグループを作成し、このグループに AWSDataPipeline_FullAccess 管理ポリシーをアタッチします。

ユーザーグループ DataPipelineDevelopers を作成して AWSDataPipeline_FullAccess ポリシーをアタッチするには

  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. ナビゲーションペインで [Groups]、[Create New Group] の順に選択します。

  3. [Group Name] に、グループの名前 DataPipelineDevelopers を入力します。[Next Step] を選択します。

  4. ポリシーのリストで、[AWSDataPipeline_FullAccess] 管理ポリシーを選択します。[Next Step] を選択します。

  5. [Create Group] を選択します。

  6. ユーザーをグループに追加します。[Groups] を選択して、DataPipelineDevelopers グループを選択します。[Users] タブを選択し、[Add Users to Group] タブを選択します。追加するユーザーを選択し、[Add Users to Group] を選択します。

PassRole を持つインラインポリシーをカスタム IAM ロールに割り当てる

AWSDataPipeline_FullAccess 管理ポリシーを AWS Data Pipeline の 2 つの事前定義済みロールで使用する代わりに、AWS Data Pipeline 用の 2 種類のカスタムロールを作成し、"Action":"iam:PassRole" を持つインラインポリシーをロールそれぞれにアタッチできます。

これら 2 タイプのカスタムロールを作成します。

  • AWS Data Pipeline 経由で Amazon EMR クラスターを起動するために使用するカスタムロール。このロールは、事前定義された DataPipelineDefaultRole と似ているか、事前定義されたロールよりもアクセス許可が少ない場合があります。ただし、このカスタムロールには、使用される 2 つのサービス (Amazon EMR および AWS Data Pipeline) との間に、以下のような信頼関係が必要です。

    "Effect": "Allow", "Principal": { "Service": "datapipeline.amazonaws.com" "Service": "elasticmapreduce.amazonaws.com" }
  • AWS Data Pipeline 経由で Amazon EC2 クラスターを起動するために使用するカスタムロール。このロールは、事前定義された DataPipelineDefaultResourceRole と似ているか、事前定義されたロールよりもアクセス許可が少ない場合があります。ただし、このカスタムロールには、Amazon EC2 サービスとの間に、以下のような信頼関係が必要です。

    "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }

詳細については、「既存のロールの信頼関係の編集」を参照してください。

EmrCluster オブジェクト用にカスタムロールを指定する方法の詳細については、「カスタム IAM ロールを指定する」を参照してください。

AWS Data Pipeline にアクセスできる CUSTOM_ROLE ロールの独自のインラインポリシーを作成するには、このインラインポリシー例をガイドラインとして使用してください。CUSTOM_ROLE には "Action":"iam:PassRole" が指定されます。

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:List*", "dynamodb:DescribeTable", ... ... ], "Action": "iam:PassRole", "Effect": "Allow", "Resource": [ "arn:aws:iam::*:role/CUSTOM_ROLE" ] }}