Amazon RDS/Aurora 初回作成時、拡張モニタリング用IAMロールが存在しないエラーと対処方法
困ったこと
AWS マネジメントコンソールで Amazon Aurora(PostgreSQL)を作成しようとしたところ、以下のエラーが発生しました。解決方法を教えて下さい。
IAM role ARN value is invalid or does not include the required permissions for: ENHANCED_MONITORING
原因
本事象は、拡張モニタリングが有効(デフォルト設定)であるにもかかわらず、必要なIAMロールrds-monitoring-role
が存在しないことが原因でデータベースの作成に失敗しました。
拡張モニタリングとは、DBインスタンスのオペレーティングシステムをリアルタイムでモニタリングできる機能です。
rds-monitoring-role
は、拡張モニタリングを使用するためのAWSサービスロールであり、サービスの使用時に自動的に作成されます。
RDS コンソールで拡張モニタリングを有効にすると、Amazon RDS は必要な IAM ロールを作成できます。ロールの名前は rds-monitoring-role です。RDS は、指定済み DB インスタンス、リードレプリカ、またはマルチ AZ DB クラスターに対してこのロールを使用します。
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.Enabling.html
拡張モニタリングはデフォルトで有効になっているため、自動的にrds-monitoring-role
が指定されますが、このロールが存在しないためエラーが発生します。
エラー時のCloudTrail のログからも、拡張モニタリング用のロールrds-monitoring-role
が指定されていることが確認できます。以下は実際のログ内容です。
{
"userIdentity": {
~中略~
},
"eventTime": "2024-10-27T23:06:25Z",
"eventSource": "rds.amazonaws.com",
"eventName": "CreateDBCluster",
"errorCode": "InvalidParameterValueException",
"errorMessage": "IAM role ARN value is invalid or does not include the required permissions for: ENHANCED_MONITORING",
"requestParameters": {
"monitoringRoleArn": "arn:aws:iam::012345678901:role/rds-monitoring-role",
~中略~
],
},
"responseElements": null,
"readOnly": false,
"eventType": "AwsApiCall",
"managementEvent": true,
~中略~
}
対処方法
データベース作成時にrds-monitoring-role
は自動的に作成されます。ロールの作成完了後にデータベース作成を再実行することで、正常に作成できます。
エラー遭遇後、私の場合、数秒後に、再度[データベース作成]をクリックすると、作成できました。
処理の流れは次の通りです。
1. CreateDBClusterの実行
- rds-monitoring-roleが存在しないため、ロールの作成を開始
- ロールの作成が完了していないため、CreateDBClusterは失敗
2. rds-monitoring-roleの作成完了
3. CreateDBClusterの再実行
- rds-monitoring-roleが存在するため成功
rds-monitoring-role
作成後、以後同様のエラーは発生しません。
ちなみに、拡張モニタリングを無効にした場合、初回のCreateDBClusterは成功しました。
まとめ
このエラーは、次の2つの条件が重なった場合に発生します。
- 拡張モニタリングが有効(デフォルト設定)の場合
rds-monitoring-role
が存在しない場合
エラーが発生した場合は、以下の手順で対処してください。
rds-monitoring-role
が自動的に作成されるのを待つ- IAMコンソールで
rds-monitoring-role
の作成を確認する - データベースの作成を再試行する