

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

# サービス間の混乱した代理の防止
<a name="cross-service-confused-deputy-prevention"></a>

混乱した代理問題は、アクションを実行する許可を持たないエンティティが、より特権のあるエンティティにアクションを実行するように強制できるセキュリティの問題です。

では AWS、サービス間のなりすましにより、混乱した代理問題が発生する可能性があります。サービス間でのなりすましは、1 つのサービス (*呼び出し元サービス*) が、別のサービス (*呼び出し対象サービス*) を呼び出すときに発生する可能性があります。呼び出し元サービスは、本来ならアクセスすることが許可されるべきではない方法でその許可を使用して、別のお客様のリソースに対する処理を実行するように操作される場合があります。

これを防ぐために、 は、アカウント内のリソースへのアクセス権が付与されたサービスプリンシパルを持つすべてのサービスのデータを保護するのに役立つツール AWS を提供します。Amazon EC2 Auto Scaling サービスロールの信頼ポリシーでは、[https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) および [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) グローバル条件コンテキストキーを使用することをお勧めします。これらのキーは、Amazon EC2 Auto Scaling が他のサービスに付与するそのリソースへのアクセス許可を制限します。

`SourceArn` および `SourceAccount`フィールドの値は、Amazon EC2 Auto Scaling が AWS Security Token Service (AWS STS) を使用してユーザーに代わってロールを引き受ける場合に設定されます。

`aws:SourceArn` または `aws:SourceAccount` グローバル条件キーを使用する場合、値を Amazon リソースネーム (ARN) または Amazon EC2 Auto Scaling が保存するリソースのアカウントに設定します。可能な限り、より具体的な `aws:SourceArn` を使用してください。ARN の不明な部分の値を ARN またはワイルドカード (`*`) を含む ARN パターンに設定します。リソースの ARN が不明の場合は、代わりに `aws:SourceAccount` を使用してください。

次の例では、Amazon EC2 Auto Scaling で `aws:SourceArn` および `aws:SourceAccount` グローバル条件コンテキストキーを使用して、「混乱した代理」問題を回避する方法を示します。

## 例: `aws:SourceArn` 条件キーおよび `aws:SourceAccount` 条件キー
<a name="cross-service-confused-deputy-prevention-example"></a>

サービスがお客様に代わってアクションを実行するために引き受けるロールは、[サービスロール](control-access-using-iam.md#security_iam_service-with-iam-roles-service)と呼ばれます。Amazon EventBridge 以外の場所に通知を送信するライフサイクルフックを作成する場合は、サービスロールを作成して、Amazon EC2 Auto Scaling がユーザーに代わって Amazon SNS トピックまたは Amazon SQS キューに通知を送信できるようにする必要があります。クロスサービスアクセスに関連付ける Auto Scaling グループを 1 つだけにする場合は、サービスロールの信頼ポリシーを次のように指定できます。

この信頼ポリシーの例では、条件文を使用して、サービスロールの `AssumeRole` 機能を、指定されたアカウントの指定された Auto Scaling グループに影響を与えるアクションのみに制限します。`aws:SourceArn` および `aws:SourceAccount` の条件は個別に評価されます。サービスロールを使用するリクエストでは、両方の条件が満たされている必要があります。

このポリシーを使用する前に、リージョン、アカウント ID、UUID、およびグループ名をアカウントの有効な値に置き換えてください。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Sid": "ConfusedDeputyPreventionExamplePolicy",
        "Effect": "Allow",
        "Principal": {
            "Service": "autoscaling.amazonaws.com"
        },
        "Action": "sts:AssumeRole",
        "Condition": {
            "ArnLike": {
                "aws:SourceArn": "arn:aws:autoscaling:us-east-1:111122223333:autoScalingGroup:uuid:autoScalingGroupName/my-asg"
            },
            "StringEquals": {
                "aws:SourceAccount": "111122223333"
            }
        }
    }
}
```

------

前の例では、以下のようになっています。
+ `Principal` 要素は、サービス(`autoscaling.amazonaws.com`) のサービスプリンシパルを指定します。
+ `Action` 要素は、`sts:AssumeRole` アクションを指定します。
+ `Condition` 要素は、`aws:SourceArn` および `aws:SourceAccount` グローバル条件キーを指定します。ソースの ARN にはアカウント ID が含まれているため、`aws:SourceArn` で `aws:SourceAccount` を使用する必要はありません 。

## 追加情報
<a name="cross-service-confused-deputy-prevention-additional-information"></a>

詳細については、「*IAM ユーザーガイド*」の「[AWS グローバル条件コンテキストキー](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)」、「[「混乱した代理」問題](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html)」、および「[ロール信頼ポリシーを更新する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-role-trust-policy.html)」を参照してください。