メニュー
Amazon Relational Database Service
ユーザーガイド (API バージョン 2014-10-31)

IAM ロールと Amazon Aurora MySQL DB クラスターの関連付け

Amazon Aurora DB クラスター内のデータベースユーザーから他の AWS サービスにアクセスすることを許可するには、Amazon Aurora から AWS のサービスにアクセスすることを許可する IAM ロールの作成 で作成したロールをその DB クラスターに関連付けます。

IAM ロールを DB クラスターに関連付けるには、2 つのことを行います。

  • RDS コンソール、AWS CLI の add-role-to-db-cluster コマンド、RDS API の AddRoleToDBCluster アクションを使用して、DB クラスターの関連付けられたロールのリストにロールを追加します。

    Aurora DB クラスターごとに最大 5 つの IAM ロールを追加できます。

  • 関連する AWS サービスのクラスターレベルのパラメータを、関連付けられた IAM ロールの ARN に設定します。

    次の表では、AWS の他のサービスにアクセスするために使用する IAM ロールのクラスターレベルのパラメータ名について説明します。

    クラスターレベルのパラメータ 説明

    aws_default_lambda_role

    DB クラスターから Lambda 関数を呼び出すときに使用します。

    aws_default_logs_role

    DB クラスターからのログデータを Amazon CloudWatch Logs にエクスポートするのに、このパラメータは必要ありません。Aurora MySQL は、必要なアクセス許可に対してサービスにリンクされたロールを使用するようになりました。サービスにリンクされたロールの詳細については、「Amazon RDS のサービスにリンクされたロールの使用」を参照してください。

    aws_default_s3_role

    DB クラスターから LOAD DATA FROM S3 ステートメント、LOAD XML FROM S3 ステートメント、または SELECT INTO OUTFILE S3 ステートメントを呼び出すときに使用します。

    Aurora バージョン 1.13 では、該当するステートメントの aurora_load_from_s3_role または aurora_select_into_s3_role に IAM ロールが指定されていない場合に限り、このパラメータに指定した IAM ロールが使用されます。

    Aurora の以前のバージョンでは、このパラメータに指定した IAM ロールが常に使用されます。

    aurora_load_from_s3_role

    Aurora バージョン 1.13 以降では、DB クラスターから LOAD DATA FROM S3 ステートメントまたは LOAD XML FROM S3 ステートメントを呼び出すときに使用します。このパラメータに IAM ロールが指定されていない場合は、aws_default_s3_role に指定した IAM ロールが使用されます。

    Aurora の以前のバージョンでは、このパラメータは使用できません。

    aurora_select_into_s3_role

    Aurora バージョン 1.13 以降では、DB クラスターから SELECT INTO OUTFILE S3 ステートメントを呼び出すときに使用します。このパラメータに IAM ロールが指定されていない場合は、aws_default_s3_role に指定した IAM ロールが使用されます。

    Aurora の以前のバージョンでは、このパラメータは使用できません。

ユーザーに代わって Amazon RDS クラスターが AWS の他のサービスと通信することを許可する IAM ロールを関連付けるには、以下のステップを実行します。

コンソールを使用して IAM ロールを Aurora DB クラスターに関連付けるには

  1. https://console.aws.amazon.com/rds/ で RDS コンソールを開きます。

  2. [Clusters] を選択します。

  3. IAM ロールを関連付ける Aurora DB クラスターを選択してから、[Cluster actions] で [Manage IAM roles] を選択します。

  4. [Manage IAM roles] で、DB クラスターに関連付けるロールを [Add IAM roles to this cluster] から選択します。

     IAM ロールを DB クラスターに関連付ける
  5. [Add role] を選択します。

  6. (オプション) IAM ロールを DB クラスターに関連付けることを止めて、関連するアクセス権限を削除するには、ロールの [Delete] を選択します。

  7. [Done] を選択します。

  8. RDS コンソールで、ナビゲーションペインの [Parameter groups] を選択します。

  9. カスタム DB パラメータグループをすでに使用している場合は、DB クラスターの新しいパラメータグループを作成する代わりに、そのグループを選択して使用できます。DB クラスターのデフォルトのパラメータグループを使用している場合は、以下のステップに従って、DB クラスターの新しいパラメータグループを作成します。

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

    2. [Parameter group family] の場合は、Aurora MySQL 5.6 互換の DB クラスターには [aurora5.6]、または Aurora MySQL 5.7 互換の DB クラスターには [aurora-mysql5.7] を選択します。

    3. [Type] で、[DB Cluster Parameter Group] を選択します。

    4. [Group name] に、DB クラスターの新しいパラメータグループの名前を入力します。

    5. [Description] に、DB クラスターの新しいパラメータグループの説明を入力します。

       DB クラスターのパラメータグループを作成する
    6. [Create] を選択します。

  10. [Parameter groups] ページで、DB クラスターパラメータグループを選択してから、[Parameter group actions] で [Edit] を選択します。

  11. [Edit parameters] を選択します。

  12. 適切なクラスターレベルのパラメータを、関連する IAM ロールの ARN 値に設定します。たとえば、aws_default_s3_role パラメーターだけにarn:aws:iam::123456789012:role/AllowAuroraS3Role を設定できます。

  13. [変更の保存] を選択します。

  14. [Instances] を選択し、Aurora DB クラスターのプライマリインスタンスを選択します。

  15. [Instance actions]、[Modify] の順に選択します。

  16. [Database options] までスクロールし、[DB cluster parameter group] を、作成した新しい DB クラスターパラメータグループに設定します。[Continue] を選択します。

  17. 変更を確認し、[Apply immediately] を選択します。

  18. [Modify DB Instance] を選択します。

  19. DB クラスターのプライマリインスタンスは、インスタンスのリストで選択されたままになります。[インスタンスの操作] を選択し、次に [再起動] を選択します。

    インスタンスが再起動すると、IAM ロールが DB クラスターに関連付けられています。

    クラスターのパラメータグループの詳細については、「Amazon Aurora MySQL のパラメータ」を参照してください。

AWS CLI を使用して IAM ロールを DB クラスターに関連付けるには

  1. 以下に示すように、AWS CLI から [add-role-to-db-cluster] コマンドを呼び出して、IAM ロールの ARN を DB クラスターに追加します。

    PROMPT> aws rds add-role-to-db-cluster --db-cluster-identifier my-cluster --role-arn arn:aws:iam::123456789012:role/AllowAuroraS3Role PROMPT> aws rds add-role-to-db-cluster --db-cluster-identifier my-cluster --role-arn arn:aws:iam::123456789012:role/AllowAuroraLambdaRole
  2. DB クラスターのデフォルトのパラメータグループを使用している場合は、DB クラスターの新しいパラメータグループを作成します。カスタム DB パラメータグループをすでに使用している場合は、DB クラスターの新しいパラメータグループを作成する代わりに、そのグループを使用できます。

    DB クラスターの新しいパラメータグループを作成するには、以下に示すように、AWS CLI から [create-db-cluster-parameter-group] コマンドを呼び出します。

    PROMPT> aws rds create-db-cluster-parameter-group --db-cluster-parameter-group-name AllowAWSAccess \ --db-parameter-group-family aurora5.6 --description "Allow access to Amazon S3 and AWS Lambda"

    MySQL Aurora 5.7 互換 DB クラスターの場合は、--db-parameter-group-familyaurora-mysql5.7 を指定します。

  3. 以下に示すように、適切なクラスターレベルの単一あるいは複数のパラメータと関連する IAM ロールの ARN 値を DB クラスターのパラメータグループに設定します。

    PROMPT> aws rds modify-db-cluster-parameter-group --db-cluster-parameter-group-name AllowAWSAccess \ --parameters "ParameterName=aws_default_s3_role,ParameterValue=arn:aws:iam::123456789012:role/AllowAuroraS3Role,method=pending-reboot" \ --parameters "ParameterName=aws_default_lambda_role,ParameterValue=arn:aws:iam::123456789012:role/AllowAuroraLambdaRole,method=pending-reboot"
  4. 以下に示すように、DB クラスターの新しいパラメータグループを使うように DB クラスターを変更し、クラスターを再起動します。

    PROMPT> aws rds modify-db-cluster --db-cluster-identifier my-cluster --db-cluster-parameter-group-name AllowAWSAccess PROMPT> aws rds reboot-db-instance --db-instance-identifier my-cluster-primary

    インスタンスが再起動すると、IAM ロールが DB クラスターに関連付けられています。

    クラスターのパラメータグループの詳細については、「Amazon Aurora MySQL のパラメータ」を参照してください。