

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

# ターゲットリソースでの Application Auto Scaling API コールに対するアクセス許可の検証
<a name="security_iam_permission_validation"></a>

Application Auto Scaling API アクションに対して承認されたリクエストを行うには、API 呼び出し元がターゲットサービスと CloudWatch の AWS リソースにアクセスするためのアクセス許可を持っている必要があります。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) が必要であるため、無効なアカウント ID (12345) とダミーインスタンス ID (non-existing-db) を使用した「ダミー」リソースを指定して ARN (`arn:aws:rds:us-east-1:12345:db:non-existing-db`) を作成する必要があります。許可があるユーザーの場合、このリクエストの結果は `InvalidParameterValue` エラーになります。許可がないユーザーの場合は、結果が `AccessDenied` になり、ユーザーに検証例外が送信されます
+ **rds:DescribeDBClusters**: 自動スケーリングに登録されているリソースのクラスター名を記述します。許可があるユーザーの場合、有効な記述結果が得られます。許可がないユーザーの場合は、結果が `AccessDenied` になり、ユーザーに検証例外が送信されます
+ **rds:DescribeDBInstances**: スケーラブルターゲットを登録するためにユーザーが提供したクラスター名をフィルタリングする `db-cluster-id` フィルターを使って、`DescribeDBInstances` API を呼び出します。許可があるユーザーの場合、DB クラスター内のすべての DB インスタンスを記述することが許可されます。許可がないユーザーの場合は、この呼び出しの結果が `AccessDenied` になり、ユーザーに検証例外が送信されます
+ **cloudwatch:PutMetricAlarm**: パラメータなしで `PutMetricAlarm` API を呼び出します。アラーム名が欠落しているため、リクエストの結果は、許可があるユーザーに対する `ValidationError` になります。許可がないユーザーの場合は、結果が `AccessDenied` になり、ユーザーに検証例外が送信されます
+ **cloudwatch:DescribeAlarms**: 最大レコード数の値を 1 に設定して `DescribeAlarms` API を呼び出します。許可があるユーザーの場合、レスポンスに 1 つのアラームに関する情報があることを期待できます。許可がないユーザーの場合は、この呼び出しの結果が `AccessDenied` になり、ユーザーに検証例外が送信されます
+ **cloudwatch:DeleteAlarms**: 上記の `PutMetricAlarm` と同じく、`DeleteAlarms` リクエストにパラメータを指定しません。リクエストにアラーム名がないため、この呼び出しは、許可があるユーザーに対する `ValidationError` を伴って失敗します。許可がないユーザーの場合は、結果が `AccessDenied` になり、ユーザーに検証例外が送信されます

これらの検証例外は、そのうちのどれかが発生するたびにログに記録されます。を使用して、検証に失敗した呼び出しを手動で特定する手順を実行できます AWS CloudTrail。詳細については、「[AWS CloudTrail ユーザーガイド](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)」を参照してください。

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