

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

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

[「混乱した代理」問題](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy)は、アクションを実行するためのアクセス許可を持たないエンティティが、より特権のあるエンティティにアクションの実行を強制できてしまう場合に生じる、セキュリティ上の問題です。では AWS、サービス間のなりすましが原因で混乱した代理問題が発生する可能性があります。クロスサービスのなりすましは、あるサービス (*呼び出し元のサービス*) が別のサービス (*呼び出し先のサービス*) を呼び出し、呼び出し先のサービスの昇格されたアクセス許可を活用して、呼び出し元サービスがアクセスする権限を持たないリソースで操作する際に発生する可能性があります。混乱した代理問題による不正アクセスを防ぐために、 はサービス間でデータを保護するのに役立つツール AWS を提供します。これらのツールは、サービスプリンシパルに付与されるアクセス許可を制御し、アカウント内の必要なリソースのみにアクセスを制限するうえで役立ちます。サービスプリンシパルのアクセス権限を慎重に管理することで、アクセス許可がないデータやリソースにサービスが不適切にアクセスするリスクを軽減できます。

一般的なガイダンスを読むか、特定の SageMaker AI 機能の例を参照してください。

**Topics**
+ [グローバル条件キーでアクセス許可を制限する](#security-confused-deputy-context-keys)
+ [SageMaker Edge Manager](#security-confused-deputy-edge-manager)
+ [SageMaker イメージ](#security-confused-deputy-images)
+ [SageMaker AI 推論](#security-confused-deputy-inference)
+ [SageMaker AI バッチ変換ジョブ](#security-confused-deputy-batch)
+ [SageMaker AI Marketplace](#security-confused-deputy-marketplace)
+ [SageMaker Neo](#security-confused-deputy-neo)
+ [SageMaker Pipelines](#security-confused-deputy-pipelines)
+ [SageMaker 処理ジョブ](#security-confused-deputy-processing-job)
+ [SageMaker Studio](#security-confused-deputy-studio)
+ [SageMaker トレーニングジョブ](#security-confused-deputy-training-job)

## グローバル条件キーでアクセス許可を制限する
<a name="security-confused-deputy-context-keys"></a>

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

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

次の例は、SageMaker AI で `aws:SourceArn` および `aws:SourceAccount` のグローバル条件キーを使用して、混乱した代理問題を防止する方法を示しています。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Sid": "ConfusedDeputyPreventionExamplePolicy",
    "Effect": "Allow",
    "Principal": {
      "Service": "sagemaker.amazonaws.com"
    },
    "Action": "{{sagemaker}}:{{StartSession}}",
    "Resource": "arn:aws:{{sagemaker}}:{{us-east-1}}:{{123456789012}}:{{ResourceName}}/*",
    "Condition": {
      "ArnLike": {
        "aws:SourceArn": "arn:aws:sagemaker:{{us-east-1}}:{{123456789012}}:*"
      },
      "StringEquals": {
        "aws:SourceAccount": "{{123456789012}}"
      }
    }
  }
}
```

------

## SageMaker Edge Manager
<a name="security-confused-deputy-edge-manager"></a>

次の例は、{{us-west-2}} リージョンでアカウント番号 {{123456789012}} によって作成された SageMaker Edge Manager でのサービス間の混乱した代理問題を防止するために、`aws:SourceArn` グローバル条件キーを使用する方法を示しています。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
      "Effect": "Allow",
      "Principal": { "Service": "sagemaker.amazonaws.com" },
      "Action": "sts:AssumeRole",
      "Condition": {
        "ArnLike": {
          "aws:SourceArn": "arn:aws:sagemaker:{{us-west-2}}:{{123456789012}}:*"
      }
    }
  }
}
```

------

このテンプレート内の `aws:SourceArn` を特定のパッケージジョブの完全な ARN に置き換えることで、アクセス許可をさらに制限できます。

## SageMaker イメージ
<a name="security-confused-deputy-images"></a>

次の例は、`aws:SourceArn` グローバル条件キーを使用して、[SageMaker Images](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-byoi.html) のサービス間での混乱した代理問題を防止する方法を示しています。このテンプレートは `[Image](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Image.html)` または `[ImageVersion](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ImageVersion.html)` と一緒に使用してください。この例では、アカウント番号 {{123456789012}} の `ImageVersion` レコード ARN を使用しています。アカウント番号は `aws:SourceArn` 値の一部であるため、`aws:SourceAccount` 値を指定する必要はありません。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Principal": {
            "Service": "sagemaker.amazonaws.com"
        },
        "Action": "sts:AssumeRole",
        "Condition": {
            "ArnLike": {
            "aws:SourceArn": "arn:aws:sagemaker:{{us-east-2}}:{{123456789012}}:{{image-version}}/*"
            }
        }
    }
}
```

------

このテンプレート内の `aws:SourceArn` を特定のイメージやイメージバージョンの完全な ARN に置き換えないでください。ARN は上に指定した形式にして、`image` または `image-version` のいずれかを指定する必要があります。`partition` プレースホルダーは、イメージまたはイメージバージョンが実行されている場所に応じて、 AWS 商用パーティション (`aws`) または AWS 中国のパーティション (`aws-cn`) のいずれかを指定する必要があります。同様に、ARN 内の `region` プレースホルダーは、SageMaker イメージを利用できる任意の[有効なリージョン](https://docs.aws.amazon.com/sagemaker/latest/dg/regions-quotas.html)にすることができます。

## SageMaker AI 推論
<a name="security-confused-deputy-inference"></a>

次の例は、SageMaker AI の[リアルタイム](https://docs.aws.amazon.com/sagemaker/latest/dg/realtime-endpoints)、[サーバーレス](https://docs.aws.amazon.com/sagemaker/latest/dg/serverless-endpoints)、および[非同期](https://docs.aws.amazon.com/sagemaker/latest/dg/async-inference)の推論におけるサービス間の混乱した代理問題を防止するために、`aws:SourceArn` グローバル条件キーを使用する方法を示しています。アカウント番号は `aws:SourceArn` 値の一部であるため、`aws:SourceAccount` 値を指定する必要はありません。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Principal": { "Service": "sagemaker.amazonaws.com" },
    "Action": "sts:AssumeRole",
    "Condition": {
      "ArnLike": {
        "aws:SourceArn": "arn:aws:sagemaker:{{us-west-2}}:{{123456789012}}:*"
      }
    }
  }
}
```

------

このテンプレート内の `aws:SourceArn` を特定のモデルやエンドポイントの完全な ARN に置き換えないでください。ARN は上に指定した形式にする必要があります。ARN テンプレート内のアスタリスクはワイルドカードではないため、変更しないでください。

## SageMaker AI バッチ変換ジョブ
<a name="security-confused-deputy-batch"></a>

次の例は、{{us-west-2}} リージョンでアカウント番号 {{123456789012}} によって作成された SageMaker AI の[バッチ変換ジョブ](https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform.html)におけるサービス間の混乱した代理問題を防止するために、`aws:SourceArn` グローバル条件キーを使用する方法を示しています。アカウント番号は ARN に含まれているため、`aws:SourceAccount` 値を指定する必要はありません。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "sagemaker.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "ArnLike": {
          "aws:SourceArn": "arn:aws:sagemaker:{{us-west-2}}:{{123456789012}}:transform-job/*"
        }
      }
    }
  ]
}
```

------

このテンプレート内の `aws:SourceArn` を特定のバッチ変換ジョブの完全な ARN に置き換えることで、アクセス許可をさらに制限できます。

## SageMaker AI Marketplace
<a name="security-confused-deputy-marketplace"></a>

次の例は、{{us-west-2}} リージョンでアカウント番号 {{123456789012}} によって作成された SageMaker AI Marketplace リソースでのサービス間の混乱した代理問題を防止するために、`aws:SourceArn` グローバル条件キーを使用する方法を示しています。アカウント番号は ARN に含まれているため、`aws:SourceAccount` 値を指定する必要はありません。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "sagemaker.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "ArnLike": {
          "aws:SourceArn": "arn:aws:sagemaker:{{us-west-2}}:{{123456789012}}:*"
        }
      }
    }
  ]
}
```

------

このテンプレート内の `aws:SourceArn` を特定のアルゴリズムやモデルパッケージの完全な ARN に置き換えないでください。ARN は上に指定した形式にする必要があります。ARN テンプレート内のアスタリスクはワイルドカードであり、検証ステップからのすべてのトレーニングジョブ、モデル、バッチ変換ジョブに加えて、SageMaker AI Marketplace に公開されたアルゴリズムとモデルパッケージをカバーします。

## SageMaker Neo
<a name="security-confused-deputy-neo"></a>

次の例は、{{us-west-2}} リージョンでアカウント番号 {{123456789012}} によって作成された SageMaker Neo のコンパイルジョブにおけるサービス間の混乱した代理問題を防止するために、`aws:SourceArn` グローバル条件キーを使用する方法を示しています。アカウント番号は ARN に含まれているため、`aws:SourceAccount` 値を指定する必要はありません。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "sagemaker.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "ArnLike": {
          "aws:SourceArn": "arn:aws:sagemaker:{{us-west-2}}:{{123456789012}}:{{compilation-job/*}}"
        }
      }
    }
  ]
}
```

------

このテンプレート内の `aws:SourceArn` を特定のコンパイルジョブの完全な ARN に置き換えることで、アクセス許可をさらに制限できます。

## SageMaker Pipelines
<a name="security-confused-deputy-pipelines"></a>

次の例は、1 つ以上のパイプラインのパイプライン実行レコードを使用する [SageMaker Pipelines](https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines-overview.html) でのサービス間の混乱した代理問題を防止するために、`aws:SourceArn` グローバル条件キーを使用する方法を示しています。アカウント番号は ARN に含まれているため、`aws:SourceAccount` 値を指定する必要はありません。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "sagemaker.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:sagemaker:{{us-east-1}}:{{123456789012}}:pipeline/{{mypipeline/*}}"
                }
            }
        }
    ]
}
```

------

このテンプレート内の `aws:SourceArn` を特定のパイプライン実行の完全な ARN に置き換えないでください。ARN は上に指定した形式にする必要があります。`partition` プレースホルダーは、パイプラインが実行されている場所に応じて、 AWS 商用パーティション (`aws`) または AWS 中国のパーティション (`aws-cn`) のいずれかを指定する必要があります。同様に、ARN 内の `region` プレースホルダーは、SageMaker Pipelines を利用できる任意の[有効なリージョン](https://docs.aws.amazon.com/sagemaker/latest/dg/regions-quotas.html)を示します。

ARN テンプレートのアスタリスクはワイルドカードであり、`mypipeline` という名前のパイプラインのすべてのパイプライン実行をカバーします。特定のパイプラインではなく、`123456789012` アカウント内のすべてのパイプラインに対して `AssumeRole` アクセス許可を付与する場合は、`aws:SourceArn` が `arn:aws:sagemaker:*:123456789012:pipeline/*` になります。

## SageMaker 処理ジョブ
<a name="security-confused-deputy-processing-job"></a>

次の例は、{{us-west-2}} リージョンでアカウント番号 {{123456789012}} によって作成された SageMaker 処理ジョブにおけるサービス間の混乱した代理問題を防止するために、`aws:SourceArn` グローバル条件キーを使用する方法を示しています。アカウント番号は ARN に含まれているため、`aws:SourceAccount` 値を指定する必要はありません。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "sagemaker.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "ArnLike": {
          "aws:SourceArn": "arn:aws:sagemaker:{{us-west-2}}:{{123456789012}}:{{processing-job/*}}"
        }
      }
    }
  ]
}
```

------

このテンプレート内の `aws:SourceArn` を特定の処理ジョブの完全な ARN に置き換えることで、アクセス許可をさらに制限できます。

## SageMaker Studio
<a name="security-confused-deputy-studio"></a>

次の例は、{{us-west-2}} リージョンでアカウント番号 {{123456789012}} によって作成された SageMaker Studio でのサービス間の混乱した代理問題を防止するために、`aws:SourceArn` グローバル条件キーを使用する方法を示しています。アカウント番号は `aws:SourceArn` 値の一部であるため、`aws:SourceAccount` 値を指定する必要はありません。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "sagemaker.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "ArnLike": {
          "aws:SourceArn": "arn:aws:sagemaker:{{us-west-2}}:{{123456789012}}:*"
        }
      }
    }
  ]
}
```

------

このテンプレート内の `aws:SourceArn` を Studio の特定のアプリケーション、ユーザープロファイル、またはドメインの完全な ARN に置き換えないでください。ARN は、前の例で示された形式である必要があります。ARN テンプレート内のアスタリスクはワイルドカードではないため、変更しないでください。

## SageMaker トレーニングジョブ
<a name="security-confused-deputy-training-job"></a>

次の例は、{{us-west-2}} リージョンでアカウント番号 {{123456789012}} によって作成された SageMaker のトレーニングジョブにおけるサービス間の混乱した代理問題を防止するために、`aws:SourceArn` グローバル条件キーを使用する方法を示しています。アカウント番号は ARN に含まれているため、`aws:SourceAccount` 値を指定する必要はありません。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "sagemaker.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "ArnLike": {
          "aws:SourceArn": "arn:aws:sagemaker:{{us-west-2}}:{{123456789012}}:{{training-job/*}}"
        }
      }
    }
  ]
}
```

------

このテンプレート内の `aws:SourceArn` を特定のトレーニングジョブの完全な ARN に置き換えることで、アクセス許可をさらに制限できます。

**次回の予定**  
実行ロールの管理の詳細については、「[SageMaker AI ロール](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles)」を参照してください。