IAM ロールと Amazon Aurora MySQL DB クラスターの関連付け
Amazon Aurora DB クラスター内のデータベースユーザーから他の AWS のサービスにアクセスすることを許可するには、Amazon Aurora が AWS のサービスにアクセスすることを許可する IAM ロールの作成 で作成したロールを、その DB クラスターに関連付けます。
IAM ロールを Aurora Serverless DB クラスターに関連付けることはできません。詳細については、「Amazon Aurora Serverless v1 の使用」を参照してください。
IAM ロールを DB クラスターに関連付けるには、2 つのことを行います。
-
RDS コンソール、add-role-to-db-cluster AWS CLI コマンド、または AddRoleToDBCluster RDS API オペレーションを使用して、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 Aurora のサービスにリンクされたロールの使用」を参照してください。
aws_default_s3_role
DB クラスターから
LOAD DATA FROM S3
ステートメント、LOAD XML FROM S3
ステートメント、またはSELECT INTO OUTFILE S3
ステートメントを呼び出すときに使用します。該当するステートメントの
aurora_load_from_s3_role
またはaurora_select_into_s3_role
に IAM ロールが指定されていない場合に限り、このパラメータに指定した IAM ロールが使用されます。Aurora の以前のバージョンでは、このパラメータに指定した IAM ロールが常に使用されます。
aurora_load_from_s3_role
DB クラスターから
LOAD DATA FROM S3
ステートメントまたはLOAD XML FROM S3
ステートメントを呼び出すときに使用します。このパラメータに IAM ロールが指定されていない場合は、aws_default_s3_role
に指定した IAM ロールが使用されます。Aurora の以前のバージョンでは、このパラメータは使用できません。
aurora_select_into_s3_role
DB クラスターから
SELECT INTO OUTFILE S3
ステートメントを呼び出すときに使用します。このパラメータに IAM ロールが指定されていない場合は、aws_default_s3_role
に指定した IAM ロールが使用されます。Aurora の以前のバージョンでは、このパラメータは使用できません。
ユーザーに代わって Amazon RDS クラスターが他の AWS のサービスと通信することを許可する IAM ロールを関連付けるには、以下のステップを実行します。
コンソールを使用して IAM ロールを Aurora DB クラスターに関連付けるには
-
RDS コンソール (https://console.aws.amazon.com/rds/
) を開きます。 -
[データベース] をクリックします。
-
IAM ロールを関連付ける Aurora DB クラスターの名前を選択して、詳細を表示します。
-
[接続とセキュリティ] タブの [IAM ロールの管理] セクションで、[このクラスターに IAM ロールを追加] で追加するロールを選択します。
[Add role] を選択します。
-
(オプション) DB クラスターへの IAM ロールの関連付けを中止し、関連するアクセス許可を削除するには、ロールの [削除] を選択します。
-
RDS コンソールで、ナビゲーションペインの [Parameter groups] を選択します。
-
カスタム DB パラメータグループをすでに使用している場合は、DB クラスターの新しいパラメータグループを作成する代わりに、そのグループを選択して使用できます。DB クラスターのデフォルトのパラメータグループを使用している場合は、以下のステップに従って、DB クラスターの新しいパラメータグループを作成します。
-
[Create parameter group] を選択します。
-
パラメータグループファミリーの場合、Aurora MySQL 8.0 互換 DB クラスターには
aurora-mysql8.0
、Aurora MySQL 5.7 互換 DB クラスターにはaurora-mysql5.7
、Aurora MySQL 5.6 互換 DB クラスターにはaurora5.6
を選択します。 -
[Type] で、[DB Cluster Parameter Group] を選択します。
-
[Group name] に、DB クラスターの新しいパラメータグループの名前を入力します。
-
[Description] に、DB クラスターの新しいパラメータグループの説明を入力します。
-
[作成] を選択します。
-
-
[パラメータグループ] ページで、DB クラスターパラメータグループを選択して [Parameter group actions (パラメータグループの操作)]、[編集] の順に選択します。
-
適切なクラスターレベルのパラメータを、関連する IAM ロールの ARN 値に設定します。例えば、
aws_default_s3_role
パラメータだけにarn:aws:iam::123456789012:role/AllowAuroraS3Role
を設定できます。 -
[Save changes] (変更を保存) をクリックします。
-
DB クラスターの DB クラスターパラメータグループを変更するには、次のステップをすべて行います。
-
[データベース] を選択後、Aurora DB クラスターを選択します。
-
[Modify] を選択します。
-
[データベースの選択肢] までスクロールし、[DB クラスターのパラメータグループ] を、DB クラスターのパラメータグループに設定します。
-
[Continue] を選択します。
-
変更を確認し、[すぐに適用] を選択します。
-
[Modify cluster] (クラスターの変更) を選択します。
-
[データベース] を選択後、DB クラスターのプライマリインスタンスを選択します。
-
[アクション] で、[再起動] を選択します。
インスタンスが再起動すると、IAM ロールが DB クラスターに関連付けられます。
クラスターのパラメータグループの詳細については、「Aurora MySQL 設定パラメータ」を参照してください。
-
AWS CLI を使用して IAM ロールを DB クラスターに関連付けるには
-
以下に示すように、
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
-
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.6 --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-family
にaurora-mysql8.0
を指定します。 -
以下に示すように、適切なクラスターレベルの単一あるいは複数のパラメータと関連する 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"
-
以下に示すように、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 設定パラメータ」を参照してください。