

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

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

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

リソースポリシーで [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) グローバル条件コンテキストキーを使用して、 がリソースに別のサービス AWS Backup に付与するアクセス許可を制限することをお勧めします。両方のグローバル条件コンテキストキーを同じポリシーステートメントで使用する場合は、`aws:SourceAccount` 値と、`aws:SourceArn` 値に含まれるアカウントが、同じアカウント ID を示している必要があります。

を使用してユーザーに代わって Amazon AWS Backup SNS トピック AWS Backup を発行する場合、 の値はボールト`aws:SourceArn`である必要があります。 Amazon SNS 

混乱した代理問題から保護するための最も効果的な方法は、リソースの完全な ARN を指定して `aws:SourceArn` グローバル条件コンテキストキーを使用することです。リソースの完全な ARN が不明な場合や、複数のリソースを指定する場合は、`aws:SourceArn` グローバルコンテキスト条件キーを使用して、ARN の未知部分をワイルドカード (`*`) で表します。例えば、`arn:aws::{{servicename}}::{{123456789012}}:*` です。

次の例は、 で `aws:SourceArn`および `aws:SourceAccount` グローバル条件コンテキストキーを使用して、混乱した代理問題 AWS Backup を防ぐ方法を示しています。次のステートメントを *KMS キーポリシー*に追加して、リクエストが指定されたバックアップボールトとアカウントから発信されない限り、サービスプリンシパルが KMS アクションを実行`backup-storage.amazonaws.com`することを拒否します。

```
{
  "Sid": "Deny Backup Storage confused deputy",
  "Effect": "Deny",
  "Principal": {
    "Service": "backup-storage.amazonaws.com"
  },
  "Action": [
    "kms:Decrypt",
    "kms:RetireGrant",
    "kms:GenerateDataKey"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "aws:SourceAccount": "{{123456789012}}"
    },
    "ArnNotLike": {
      "aws:SourceArn": "arn:aws::backup:{{us-east-1}}:{{123456789012}}:backup-vault:*"
    }
  }
}
```

{{us-east-1}} を AWS リージョン に、{{123456789012}} を AWS アカウント ID に置き換えます。このポリシーは、リクエストが指定されたアカウントとリージョンのバックアップボールトからのものでない限り、 AWS Backup ストレージサービスプリンシパルが KMS キーを使用することを拒否します。