

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

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

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

リソースポリシーで [`aws:SourceArn`](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn)および [`aws:SourceAccount`](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) グローバル条件コンテキストキーを使用して、 AWS Parallel Computing Service (AWS PCS) がリソースに別のサービスに付与するアクセス許可を制限することをお勧めします。クロスサービスアクセスにリソースを 1 つだけ関連付けたい場合は、`aws:SourceArn` を使用します。そのアカウント内のリソースをクロスサービスの使用に関連付けることを許可する場合は、`aws:SourceAccount` を使用します。

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

`aws:SourceArn` の値に Amazon S3 バケット ARN などのアカウント ID が含まれていない場合は、両方のグローバル条件コンテキストキーを使用して、アクセス許可を制限する必要があります。

の値はクラスター ARN `aws:SourceArn`である必要があります。

次の例は、PCS で AWS `aws:SourceArn`および `aws:SourceAccount` グローバル条件コンテキストキーを使用して、混乱した代理問題を防ぐ方法を示しています。

```
{
"Version": "2012-10-17",		 	 	 
  "Statement": {
"Sid": "ConfusedDeputyPreventionExamplePolicy",
    "Effect": "Allow",
    "Principal": {
      "Service": "pcs.amazonaws.com"
    },
    "Action": "sts:AssumeRole",
    "Condition": {
      "ArnLike": {
        "aws:SourceArn": [
          "arn:aws:pcs:us-east-1:123456789012:cluster/*"
        ]
      },
      "StringEquals": {
        "aws:SourceAccount": "123456789012"
      }
    }
  }
}
```

## コンピューティングノードグループの一部としてプロビジョニングされた Amazon EC2 インスタンスの IAM ロール
<a name="cross-service-confused-deputy-prevention_compute-node"></a>

AWS PCS は、クラスター内の設定された各コンピューティングノードグループの Amazon EC2 容量を自動的にオーケストレーションします。コンピューティングノードグループを作成する場合、ユーザーは `iamInstanceProfileArn`フィールドを使用して IAM インスタンスプロファイルを指定する必要があります。インスタンスプロファイルは、プロビジョニングされた EC2 インスタンスに関連付けられたアクセス許可を指定します。 AWS PCS は、 をロール名のプレフィックス`AWSPCS`として、またはロールパス`/aws-pcs/`の一部として持つすべてのロールを受け入れます。アクセス`iam:PassRole`許可は、コンピューティングノードグループを作成または更新する IAM ID (ユーザーまたはロール) に必要です。ユーザーが `CreateComputeNodeGroup`または `UpdateComputeNodeGroup` API アクションを呼び出すと、 AWS PCS はユーザーが`iam:PassRole`アクションを実行できるかどうかを確認します。

次のポリシーの例では、名前が `AWSPCS` で始まる IAM ロールのみを渡す許可を付与します。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::123456789012:role/AWSPCS*",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": [
                        "ec2.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```