ターゲットリソースでの Application Auto Scaling API コールのアクセス許可の検証 - Application Auto Scaling

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ターゲットリソースでの Application Auto Scaling API コールのアクセス許可の検証

Application Auto Scaling API アクションに対して承認されたリクエストを行うには、API 発信者がターゲットサービスおよび の AWS リソースにアクセスするためのアクセス許可を持っている必要があります CloudWatch。Application Auto Scaling は、リクエストを続行する CloudWatch 前に、ターゲットサービスと の両方に関連付けられたリクエストのアクセス許可を検証します。これを行うには、一連のコールを発行してターゲットリソースに対する IAM 許可を検証します。レスポンスが返されると、Application Auto Scaling がそのレスポンスを読み取ります。IAM 許可が所定のアクションが許可しない場合、Application Auto Scaling はリクエストを失敗させ、欠落している許可に関する情報が含まれたエラーをユーザーに返します。これは、ユーザーがデプロイするスケーリング設定が意図したとおりに機能することと、リクエストが失敗した場合に有用なエラーが返されることを確実にします。

これがどのように機能するかの一例として、以下の情報は、Application Auto Scaling が Aurora と でアクセス許可の検証を実行する方法に関する詳細を提供します CloudWatch。

ユーザーが Aurora DB クラスターに対して RegisterScalableTarget API を呼び出すと、Application Auto Scaling は以下のすべてのチェックを実行してユーザーに必要なアクセス許可 (太字) があることを確認します。

  • rds:CreateDBInstance: ユーザーにこの許可があるかどうかを判断するため、CreateDBInstance API オペレーションにリクエストを送信して、ユーザーが指定した Aurora DB クラスターで無効なパラメータ (空のインスタンス ID) を使った DB インスタンスの作成を試みます。許可があるユーザーの場合、API は、リクエストを監査した後で InvalidParameterValue エラーコードレスポンスを返します。しかし、許可がないユーザーの場合は、AccessDenied エラーが発生し、欠落している許可がリストされた、ユーザーへの ValidationException エラーを伴って Application Auto Scaling リクエストが失敗します。

  • rds:DeleteDBInstance: DeleteDBInstance API オペレーションに空のインスタンス ID を送信します。許可があるユーザーの場合、このリクエストの結果は InvalidParameterValue エラーになります。許可がないユーザーの場合は、結果が AccessDenied になり、ユーザーに検証例外が送信されます (最初の箇条書きで説明されているものと同じ対応)。

  • rds:AddTagsToResource: AddTagsToResource API オペレーションには Amazon リソースネーム (ARN) が必要なため、ARN () を構築するには、無効なアカウント ID (12345) とダミーインスタンス ID (non-existing-db) を使用して「ダミー」リソースを指定する必要がありますarn:aws:rds:us-east-1:12345:db:non-existing-db。許可があるユーザーの場合、このリクエストの結果は InvalidParameterValue エラーになります。許可がないユーザーの場合は、結果が AccessDenied になり、ユーザーに検証例外が送信されます

  • rds:DescribeDBCluster: オートスケーリングに登録されているリソースのクラスター名を記述します。許可があるユーザーの場合、有効な記述結果が得られます。許可がないユーザーの場合は、結果が AccessDenied になり、ユーザーに検証例外が送信されます

  • rds:DescribeDBInstance。スケーラブルターゲットを登録するためにユーザーが提供したクラスター名をフィルタリングする db-cluster-id フィルターを使って、DescribeDBInstance API を呼び出します。許可があるユーザーの場合、DB クラスター内のすべての DB インスタンスを記述することが許可されます。許可がないユーザーの場合は、この呼び出しの結果が AccessDenied になり、ユーザーに検証例外が送信されます

  • cloudwatch:PutMetricAlarm : パラメータなしで PutMetricAlarm API を呼び出します。アラーム名が欠落しているため、リクエストの結果は、許可があるユーザーに対する ValidationError になります。許可がないユーザーの場合は、結果が AccessDenied になり、ユーザーに検証例外が送信されます

  • cloudwatch:DescribeAlarms: DescribeAlarms API を呼び出します。レコードの最大数は 1 に設定されています。許可があるユーザーの場合、レスポンスに 1 つのアラームに関する情報があることを期待できます。許可がないユーザーの場合は、この呼び出しの結果が AccessDenied になり、ユーザーに検証例外が送信されます

  • cloudwatch:DeleteAlarms: PutMetricAlarm 上記のように、DeleteAlarmsリクエストするパラメータは提供されません。リクエストにアラーム名がないため、この呼び出しは、許可があるユーザーに対する ValidationError を伴って失敗します。許可がないユーザーの場合は、結果が AccessDenied になり、ユーザーに検証例外が送信されます

これらの検証例外は、そのうちのどれかが発生するたびにログに記録されます。を使用して、検証に失敗した呼び出しを手動で特定する手順を実行できます AWS CloudTrail。詳細については、『AWS CloudTrail ユーザーガイド』を参照してください。

注記

を使用して Application Auto Scaling イベントのアラートを受信すると CloudTrail、これらのアラートには、デフォルトでユーザーのアクセス許可を検証するための Application Auto Scaling 呼び出しが含まれます。これらのアラートを除外する場合は、これらの検証チェックのための application-autoscaling.amazonaws.com が含まれている invokedBy フィールドを使用します。