View a markdown version of this page

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

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

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

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

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

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

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

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

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

    aws_default_lambda_role

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

    aws_default_logs_role

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

    aws_default_s3_role

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

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

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

    aurora_load_from_s3_role

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

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

    aurora_select_into_s3_role

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

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

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

コンソールを使用して IAM ロールを Aurora DB クラスターに関連付けるには
  1. RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. [データベース] をクリックします。

  3. IAM ロールを関連付ける Aurora DB クラスターの名前を選択して、詳細を表示します。

  4. [Connectivity & security] (接続とセキュリティ) タブの [Manage IAM roles] (IAM ロールの管理) セクションで、次のいずれかを実行します。

    • このクラスターに追加する IAM ロールを選択してください (デフォルト)

    • このクラスターに接続するサービスを選択してください

    IAM ロールを DB クラスターに関連付ける
  5. 既存の IAM ロールを使用するには、メニューからロールを選択し、[Add role] (ロールの追加) を選択します。

    ロールの追加に成功すると、そのステータスは PendingAvailable の順に表示されます。

  6. サービスに直接接続するには、以下を実行します。

    1. [Select a service to connect to this cluster] (このクラスターに接続するサービスを選択する) を選択します。

    2. メニューからサービスを選択し、[Connect service] (サービスに接続する) を選択します。

    3. [Connect cluster to Service Name] (クラスターをサービス名に接続する) で、サービスへの接続に使用する Amazon リソースネーム (ARN) を入力し、[Connect service] (サービスに接続する) を選択します。

    AWS は、サービスに接続するための新しい IAM ロールを作成します。そのステータスは Pending、次に Available と表示されます。

  7. (オプション) DB クラスターへの IAM ロールの関連付けを中止し、関連するアクセス許可を削除するには、ロールの [Delete] (削除) を選択します。

関連する IAM ロールにクラスターレベルのパラメータを設定するには
  1. RDS コンソールで、ナビゲーションペインの [パラメータグループ] を選択します。

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

    1. [パラメータグループの作成]を選択します。

    2. [パラメータグループファミリー] で、Aurora MySQL 8.0 互換の DB クラスターには aurora-mysql8.0 を選択し、Aurora MySQL 5.7 互換の DB クラスターには aurora-mysql5.7 を選択します。

    3. [タイプ] で、[DB クラスターのパラメータグループ] を選択します。

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

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

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

  3. [パラメータグループ] ページで、DB クラスターパラメータグループを選択して [パラメータグループアクション]、[編集] の順に選択します。

  4. 適切なクラスターレベルのパラメータを、関連する IAM ロールの ARN 値に設定します。

    例えば、aws_default_s3_role パラメータをarn:aws:iam::123456789012:role/AllowS3Access に設定します。

  5. [変更の保存] をクリックします。

  6. DB クラスターの DB クラスターパラメータグループを変更するには、次のステップをすべて行います。

    1. [データベース] を選択後、Aurora DB クラスターを選択します。

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

    3. [データベースの選択肢] までスクロールし、[DB クラスターのパラメータグループ] を、DB クラスターのパラメータグループに設定します。

    4. [続行] を選択します。

    5. 変更を確認し、[すぐに適用] を選択します。

    6. [クラスタークラスターの変更] を選択します。

    7. [データベース] を選択後、DB クラスターのプライマリインスタンスを選択します。

    8. [アクション] で、[再起動] を選択します。

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

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

AWS CLI を使用して IAM ロールを DB クラスターに関連付けるには
  1. 以下に示すように、add-role-to-db-cluster から AWS CLI コマンドを呼び出して、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 クラスターの新しいパラメータグループを作成するには、以下に示すように、create-db-cluster-parameter-group から AWS CLI コマンドを呼び出します。

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

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

  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 クラスターに関連付けられています。

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