IAM ロールと Amazon Aurora MySQL DB クラスターの関連付け
Amazon Aurora DB クラスター内のデータベースユーザーから他の AWS のサービスにアクセスすることを許可するには、Amazon Aurora が AWS のサービスにアクセスすることを許可する IAM ロールの作成 で作成した IAM ロールを、その DB クラスターに関連付けます。サービスを直接関連付けることで、AWS に新しい IAM ロールを作成させることもできます。
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_roleDB クラスターから Lambda 関数を呼び出すときに使用します。
aws_default_logs_roleDB クラスターからのログデータを Amazon CloudWatch Logs にエクスポートするために、このパラメータを使用する必要はなくなりました。Aurora MySQL は、必要なアクセス許可のためにサービスにリンクされたロールを使用するようになりました。サービスにリンクされたロールの詳細については、「Amazon Aurora のサービスにリンクされたロールの使用」を参照してください。
aws_default_s3_roleDB クラスターから
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_roleDB クラスターから
LOAD DATA FROM S3ステートメントまたはLOAD XML FROM S3ステートメントを呼び出すときに使用します。このパラメータに IAM ロールが指定されていない場合は、aws_default_s3_roleに指定した IAM ロールが使用されます。Aurora MySQL バージョン 3 では、このパラメータは使用できません。
aurora_select_into_s3_roleDB クラスターから
SELECT INTO OUTFILE S3ステートメントを呼び出すときに使用します。このパラメータに IAM ロールが指定されていない場合は、aws_default_s3_roleに指定した IAM ロールが使用されます。Aurora MySQL バージョン 3 では、このパラメータは使用できません。
ユーザーに代わって Amazon RDS クラスターが他の AWS のサービスと通信することを許可する IAM ロールを関連付けるには、以下のステップを実行します。
コンソールを使用して IAM ロールを Aurora DB クラスターに関連付けるには
-
RDS コンソール (https://console.aws.amazon.com/rds/
) を開きます。 -
[データベース] をクリックします。
-
IAM ロールを関連付ける Aurora DB クラスターの名前を選択して、詳細を表示します。
-
[Connectivity & security] (接続とセキュリティ) タブの [Manage IAM roles] (IAM ロールの管理) セクションで、次のいずれかを実行します。
-
このクラスターに追加する IAM ロールを選択してください (デフォルト)
-
このクラスターに接続するサービスを選択してください
-
-
既存の IAM ロールを使用するには、メニューからロールを選択し、[Add role] (ロールの追加) を選択します。
ロールの追加に成功すると、そのステータスは
Pending、Availableの順に表示されます。 -
サービスに直接接続するには、以下を実行します。
-
[Select a service to connect to this cluster] (このクラスターに接続するサービスを選択する) を選択します。
-
メニューからサービスを選択し、[Connect service] (サービスに接続する) を選択します。
-
[Connect cluster to
Service Name] (クラスターをサービス名に接続する) で、サービスへの接続に使用する Amazon リソースネーム (ARN) を入力し、[Connect service] (サービスに接続する) を選択します。
AWS は、サービスに接続するための新しい IAM ロールを作成します。そのステータスは
Pending、次にAvailableと表示されます。 -
-
(オプション) DB クラスターへの IAM ロールの関連付けを中止し、関連するアクセス許可を削除するには、ロールの [Delete] (削除) を選択します。
関連する IAM ロールにクラスターレベルのパラメータを設定するには
-
RDS コンソールで、ナビゲーションペインの [パラメータグループ] を選択します。
-
カスタム DB パラメータグループをすでに使用している場合は、DB クラスターの新しいパラメータグループを作成する代わりに、そのグループを選択して使用できます。DB クラスターのデフォルトのパラメータグループを使用している場合は、以下のステップに従って、DB クラスターの新しいパラメータグループを作成します。
-
[パラメータグループの作成]を選択します。
-
[パラメータグループファミリー] で、Aurora MySQL 8.0 互換の DB クラスターには
aurora-mysql8.0を選択し、Aurora MySQL 5.7 互換の DB クラスターにはaurora-mysql5.7を選択します。 -
[タイプ] で、[DB クラスターのパラメータグループ] を選択します。
-
[グループ名] に、DB クラスターの新しいパラメータグループの名前を入力します。
-
[説明] に、DB クラスターの新しいパラメータグループの説明を入力します。
-
[作成] を選択します。
-
-
[パラメータグループ] ページで、DB クラスターパラメータグループを選択して [パラメータグループアクション]、[編集] の順に選択します。
-
適切なクラスターレベルのパラメータを、関連する IAM ロールの ARN 値に設定します。
例えば、
aws_default_s3_roleパラメータをarn:aws:iam::123456789012:role/AllowS3Accessに設定します。 -
[変更の保存] をクリックします。
-
DB クラスターの DB クラスターパラメータグループを変更するには、次のステップをすべて行います。
-
[データベース] を選択後、Aurora DB クラスターを選択します。
-
[Modify] を選択します。
-
[データベースの選択肢] までスクロールし、[DB クラスターのパラメータグループ] を、DB クラスターのパラメータグループに設定します。
-
[続行] を選択します。
-
変更を確認し、[すぐに適用] を選択します。
-
[クラスタークラスターの変更] を選択します。
-
[データベース] を選択後、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.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-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 設定パラメータ」を参照してください。