拡張モニタリングの設定と有効化 - Amazon Relational Database Service

拡張モニタリングの設定と有効化

拡張モニタリングを使用するには、IAM ロールを作成し、拡張モニタリングを有効にする必要があります。

拡張モニタリング用の IAM ロールの作成

拡張モニタリングには、CloudWatch Logs に OS メトリクスの情報を送るためのアクセス権限が必要です。AWS Identity and Access Management (IAM) ロールを使用して、Enhanced Monitoring に必要なアクセス許可を付与します。このロールは、拡張モニタリングを有効にする際に作成することも、事前に作成しておくこともできます。

拡張モニタリングを有効にしたときの IAM ロールの作成

RDS コンソールで拡張モニタリングを有効にすると、Amazon RDS は必要な IAM ロールを作成できます。ロールの名前は rds-monitoring-role です。RDS は、指定済み DB インスタンス、リードレプリカ、またはマルチ AZ DB クラスターに対してこのロールを使用します。

拡張モニタリングを有効にするときに、IAM ロールを作成するには
  1. 拡張モニタリングのオンとオフを切り替える の手順を行います。

  2. ロールを選択する手順で、[モニタリングロール] を [デフォルト] に設定します。

拡張モニタリングを有効にする前の IAM ロールの作成

拡張モニタリングを有効にする前に、必要なロールを作成できます。拡張モニタリングを有効にする場合は、新しいロールの名前を指定します。AWS CLI または RDS API を使用して拡張モニタリングを有効にする場合は、この必要なロールを作成する必要があります。

拡張モニタリングを有効にするユーザーには、PassRole アクセス許可を付与する必要があります。詳細については、IAM ユーザーガイドの「AWS サービスにロールを渡すアクセス許可をユーザーに許可する」の「例 2」を参照してください。

Amazon RDS 拡張モニタリング用の IAM ロールを作成するには
  1. IAM コンソール (https://console.aws.amazon.com) を開きます。

  2. ナビゲーションペインで [ロール] を選択します。

  3. [ロールの作成] を選択します。

  4. [AWS のサービス] タブを選択し、サービスのリストから [RDS] を選択します。

  5. [RDS - Enhanced Monitoring] (RDS - 拡張モニタリング)、[Next] (次へ) の順に選択します。

  6. [Permissions policies] (アクセス許可ポリシー) に [AmazonRDSEnhancedMonitoringRole] が表示されていることを確認し、[Next] (次へ) を選択します。

  7. [ロール名] に、ロールの名前を入力します。例えば、「emaccess」と入力します。

    ロールの信頼されたエンティティは、AWS サービスmonitoring.rds.amazonaws.com です。

  8. [ロールの作成] を選択します。

拡張モニタリングのオンとオフを切り替える

拡張モニタリングのオンとオフは、AWS Management Console、AWS CLI、または RDS API を使用して切り替えることができます。拡張モニタリングをオンにする RDS インスタンスを選択します。DB インスタンスごとに、メトリクス収集の詳細度を別々に設定できます。

DB インスタンス、マルチ AZ DB クラスター、もしくはリードレプリカの作成時、または DB インスタンスもしくはマルチ AZ DB クラスターの変更時に、拡張モニタリングをオンにすることができます。拡張モニタリングをオンにするように DB インスタンスを変更した場合は、変更を有効にするために DB インスタンスを再起動する必要はありません。

RDS コンソールの [データベース] ページで、次のいずれかのアクションを行ううと、拡張モニタリングをオンにすることができます。

  • DB インスタンスまたはマルチ AZ DB クラスターを作成する – [データベースを作成] を選択します。

  • [リードレプリカの作成] – [アクション]、[リードレプリカの作成] の順にクリックします。

  • DB インスタンスまたはマルチ AZ DB クラスターを変更する – [変更] を選択します。

RDS コンソールで拡張モニタリングのオンとオフを切り替えるには
  1. [その他の設定] までスクロールします。

  2. [モニタリング] で、DB インスタンスまたはリードレプリカに対し、[拡張モニタリングを有効にする] をクリックします。拡張モニタリングを無効にする場合は、[拡張モニタリングを無効にする] をクリックします。

  3. [ロールの作成] プロパティで、Amazon CloudWatch Logs との通信を Amazon RDS に許可するために作成した IAM ロールに設定するか、[デフォルト] を選択して、RDS によって rds-monitoring-role という名前でロールが作成されるようにします。

  4. [詳細度] プロパティを、DB インスタンスまたはリードレプリカのメトリクスが収集される間隔 (秒単位) に設定します。[詳細度] プロパティは、1510153060 のいずれかの値に設定できます。

    RDS コンソールは最速で 5 秒ごとに更新されます。RDS コンソールで詳細度を 1 秒に設定しても、メトリクスはやはり 5 秒ごとに更新されます。1 秒ごとにメトリクスの更新を取得するには、CloudWatch Logs を使用します。

AWS CLI を使用して拡張モニタリングをオンにするには、次のコマンドで --monitoring-interval オプションを 0 以外の値に設定し、--monitoring-role-arn オプションを 拡張モニタリング用の IAM ロールの作成 で作成したロールに設定します。

--monitoring-interval オプションにより、拡張モニタリングのメトリクスが収集される時間点の間隔 (秒単位) が指定されます。オプションの有効な値は、015101530、および 60 です。

AWS CLI を使用して拡張モニタリングをオフにするには、これらのコマンドで --monitoring-interval オプションを 0 に設定します。

次の例では、DB インスタンスの拡張モニタリングをオンに切り替えています。

Linux、macOS、Unix の場合:

aws rds modify-db-instance \ --db-instance-identifier mydbinstance \ --monitoring-interval 30 \ --monitoring-role-arn arn:aws:iam::123456789012:role/emaccess

Windows の場合:

aws rds modify-db-instance ^ --db-instance-identifier mydbinstance ^ --monitoring-interval 30 ^ --monitoring-role-arn arn:aws:iam::123456789012:role/emaccess

次の例では、マルチ AZ DB クラスターの拡張モニタリングをオンに切り替えています。

Linux、macOS、Unix の場合:

aws rds modify-db-cluster \ --db-cluster-identifier mydbcluster \ --monitoring-interval 30 \ --monitoring-role-arn arn:aws:iam::123456789012:role/emaccess

Windows の場合:

aws rds modify-db-cluster ^ --db-cluster-identifier mydbcluster ^ --monitoring-interval 30 ^ --monitoring-role-arn arn:aws:iam::123456789012:role/emaccess

RDS API を使用して拡張モニタリングをオンにするには、MonitoringInterval パラメータに 0 以外の値を設定し、MonitoringRoleArn パラメータを 拡張モニタリング用の IAM ロールの作成 で作成したロールに設定します。次のアクションでこれらのパラメータを設定します。

MonitoringInterval パラメータにより、拡張モニタリングのメトリクスが収集される時間点の間隔 (秒単位) が指定されます。有効な値は、01510153060 です。

RDS API を使用して拡張モニタリングをオフにするには、MonitoringInterval0 を設定します。

「混乱した代理」問題からの保護

混乱した代理問題は、アクションを実行する許可を持たないエンティティが、より特権のあるエンティティにアクションを実行するように強制できるセキュリティの問題です。AWS では、サービス間でのなりすましによって、混乱した代理問題が発生する場合があります。サービス間でのなりすましは、1 つのサービス (呼び出し元サービス) が、別のサービス (呼び出し対象サービス) を呼び出すときに発生する可能性があります。呼び出し元サービスは、本来ならアクセスすることが許可されるべきではない方法でその許可を使用して、別のお客様のリソースに対する処理を実行するように操作される場合があります。これを防ぐために、AWS には、アカウント内のリソースへのアクセス権が付与されたサービスプリンシパルですべてのサービスのデータを保護するために役立つツールが用意されています。詳細については、「「混乱した代理」問題」を参照してください。

リソースに関して、Amazon RDS から別のサービスに付与できるアクセス許可を制限する場合は、拡張モニタリングロール用の信頼ポリシー内で、aws:SourceArn および aws:SourceAccount のグローバル条件コンテキストキーを使用することをお勧めします。これら両方のグローバル条件コンテキストキーを使用する場合、アカウント ID は同じものを使用する必要があります。

混乱した代理問題から保護するための最も効果的な方法は、リソースの完全な ARN を指定して aws:SourceArn グローバル条件コンテキストキーを使用することです。Amazon RDS の場合は、aws:SourceArnarn:aws:rds:Region:my-account-id:db:dbname を設定します。

次の例では、「混乱した代理」問題を防ぐために、信頼ポリシー内で aws:SourceArn および aws:SourceAccount のグローバル条件コンテキストを使用しています。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "monitoring.rds.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringLike": { "aws:SourceArn": "arn:aws:rds:Region:my-account-id:db:dbname" }, "StringEquals": { "aws:SourceAccount": "my-account-id" } } } ] }