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 ロールを Aurora Serverless v1 DB クラスターに関連付けることはできません。詳細については、「Amazon Aurora Serverless v1 の使用」を参照してください。

IAM ロールを Aurora Serverless v2 DB クラスターに関連付けることはでます。

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 設定パラメータ」を参照してください。