Amazon RDS/Aurora 初回作成時、拡張モニタリング用IAMロールが存在しないエラーと対処方法

Amazon RDS/Aurora 初回作成時、拡張モニタリング用IAMロールが存在しないエラーと対処方法

「IAM role ARN value is invalid or does not include the required permissions for: ENHANCED_MONITORING」のエラーに遭遇した際の原因と対処方法
Clock Icon2024.11.06

困ったこと

AWS マネジメントコンソールで Amazon Aurora(PostgreSQL)を作成しようとしたところ、以下のエラーが発生しました。解決方法を教えて下さい。

IAM role ARN value is invalid or does not include the required permissions for: ENHANCED_MONITORING

cm-hirai-screenshot 2024-10-28 8.06.37

原因

本事象は、拡張モニタリングが有効(デフォルト設定)であるにもかかわらず、必要なIAMロールrds-monitoring-roleが存在しないことが原因でデータベースの作成に失敗しました。

cm-hirai-screenshot 2024-10-28 8.44.29

拡張モニタリングとは、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つの条件が重なった場合に発生します。

  1. 拡張モニタリングが有効(デフォルト設定)の場合
  2. rds-monitoring-roleが存在しない場合

エラーが発生した場合は、以下の手順で対処してください。

  1. rds-monitoring-roleが自動的に作成されるのを待つ
  2. IAMコンソールでrds-monitoring-roleの作成を確認する
  3. データベースの作成を再試行する

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.