サービス間の混乱した代理の防止 - Amazon EC2 Auto Scaling

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

サービス間の混乱した代理の防止

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

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

これを防ぐために、 は、アカウント内のリソースへのアクセスが許可されているサービスプリンシパルを持つすべてのサービスのデータを保護するのに役立つツール AWS を提供します。Amazon EC2 Auto Scaling サービスロールの信頼ポリシーでは、aws:SourceArn および aws: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 条件キー

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

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

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

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

前の例では、以下のようになっています。

  • Principal 要素は、サービス(autoscaling.amazonaws.com) のサービスプリンシパルを指定します。

  • Action 要素は、sts:AssumeRole アクションを指定します。

  • Condition 要素は、aws:SourceArn および aws:SourceAccount グローバル条件キーを指定します。ソースの ARN にはアカウント ID が含まれているため、aws:SourceArnaws:SourceAccount を使用する必要はありません 。

追加情報

詳細については、「IAM ユーザーガイド」の「AWS グローバル条件コンテキストキー」、「混乱した使節の問題」、および「ロールの信頼ポリシーの変更 (コンソール)」を参照してください。