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

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

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

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

一般的なガイダンスについては「」をお読みになるか、特定の SageMaker 機能の例を参照してください。

グローバル条件キーでアクセス許可を制限する

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

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

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

{ "Version": "2012-10-17", "Statement": { "Sid": "ConfusedDeputyPreventionExamplePolicy", "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, # Specify an action and resource policy for another service "Action": "service:ActionName", "Resource": [ "arn:aws:service:::ResourceName/*" ], "Condition": { "ArnLike": { "aws:SourceArn": "arn:partition:sagemaker:region:123456789012:*" }, "StringEquals": { "aws:SourceAccount": "123456789012" } } } }

SageMaker Edge Manager

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

{ "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の を 1 つの特定のパッケージングジョブARNの完全な に置き換えて、アクセス許可をさらに制限できます。

SageMaker イメージ

次の例は、 aws:SourceArn グローバル条件キーを使用して、SageMaker イメージ のサービス間の混乱した代理問題を防止する方法を示しています。このテンプレートは Image または ImageVersion と一緒に使用してください。この例では、 アカウント番号ARNの ImageVersionレコードを使用しています。123456789012。 アカウント番号は aws:SourceArn値の一部であるため、 aws:SourceAccount 値を指定する必要はありません。

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

aws:SourceArn このテンプレートARNの を、特定のイメージまたはイメージバージョンの完全な に置き換えないでください。は上記の形式で、 imageまたは を指定ARNする必要がありますimage-versionpartition プレースホルダーは、イメージまたはイメージバージョンが実行されている場所に応じて、 AWS 商用パーティション (aws) または AWS 中国のパーティション (aws-cn) のいずれかを指定する必要があります。同様に、 のregionプレースホルダーは、 SageMaker イメージが利用可能な任意の有効なリージョンにARNすることができます。

SageMaker 推論

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

{ "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 バッチ変換ジョブ

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

{ "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の を 1 つの特定のバッチ変換ジョブARNの完全な に置き換えて、アクセス許可をさらに制限できます。

SageMaker Marketplace

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

{ "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 Marketplace に公開されるアルゴリズムとモデルパッケージを対象としています。

SageMaker Neo

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

{ "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の を 1 つの特定のコンパイルジョブARNの完全な に置き換えて、アクセス許可をさらに制限できます。

SageMaker パイプライン

次の例は、aws:SourceArnグローバル条件キーを使用して、1 つ以上のパイプラインのパイプライン実行レコードを使用するSageMaker パイプラインのサービス間の混乱した代理問題を防止する方法を示しています。アカウント番号は にあるためARN、 aws:SourceAccount値を指定する必要はありません。

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

このテンプレートaws:SourceArnの を、特定のパイプライン実行ARNの完全な に置き換えないでください。は上記の形式ARNである必要があります。partition プレースホルダーは、パイプラインが実行されている場所に応じて、 AWS 商用パーティション (aws) または AWS 中国パーティション (aws-cn) のいずれかを指定する必要があります。同様に、 のregionプレースホルダーは、 SageMaker パイプラインが利用可能な任意の有効なリージョンにARNすることができます。

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

SageMaker 処理ジョブ

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

{ "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の を 1 つの特定の処理ジョブARNの完全な に置き換えて、アクセス許可をさらに制限できます。

SageMaker Studio

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

{ "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 トレーニングジョブ

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

{ "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の を 1 つの特定のトレーニングジョブARNの完全な に置き換えて、アクセス許可をさらに制限できます。

次回の予定

実行ロールの管理の詳細については、SageMaker 「 ロール」を参照してください。