Serviceübergreifende Confused-Deputy-Prävention - Amazon SageMaker AI

Serviceübergreifende Confused-Deputy-Prävention

Das Confused-Deputy-Problem ist ein Sicherheitsproblem, bei dem eine Entität, die nicht über die Berechtigung zum Ausführen einer Aktion verfügt, eine Entität mit größeren Rechten zwingen kann, die Aktion auszuführen. In AWS kann das Confused-Deputy-Problem aufgrund von serviceübergreifender Identitätsübernahme auftreten. Ein dienstübergreifender Identitätswechsel kann auftreten, wenn ein Dienst (der aufrufende Dienst) einen anderen Dienst (den aufgerufenen Dienst) aufruft und die erhöhten Berechtigungen des aufgerufenen Dienstes nutzt, um auf Ressourcen zu reagieren, für die der aufrufende Dienst keine Zugriffsberechtigung hat. AWSBietet Tools, mit denen Sie Ihre Daten dienstübergreifend schützen können, um unbefugten Zugriff durch das Problem mit dem verwirrten Stellvertreter zu verhindern. Mit diesen Tools können Sie kontrollieren, welche Berechtigungen Dienstprinzipalen erteilt werden, und deren Zugriff nur auf die Ressourcen in Ihrem Konto beschränken, die erforderlich sind. Durch die sorgfältige Verwaltung der Zugriffsrechte von Service Principals können Sie das Risiko verringern, dass Dienste nicht ordnungsgemäß auf Daten oder Ressourcen zugreifen, für die sie keine Berechtigungen haben sollten.

Lesen Sie weiter, um allgemeine Hinweise zu erhalten, oder navigieren Sie zu einem Beispiel für eine bestimmte SageMaker-AI-Feature:

Beschränken Sie Berechtigungen mit globalen Bedingungsschlüsseln

Wir empfehlen, die aws:SourceArn und aws:SourceAccount globalen Bedingungsschlüssel in Ressourcenrichtlinien zu verwenden, um die Berechtigungen auf die Ressource zu beschränken, die Amazon SageMaker AI einem anderen Service gibt. Wenn Sie beide globalen Konditionsschlüssel verwenden und der aws:SourceArn Wert die Konto-ID enthält, müssen der aws:SourceAccount Wert und das Konto im aws:SourceArn Wert die gleiche Konto-ID verwenden, wenn sie in der gleichen Richtlinienanweisung verwendet werden. Verwenden Sie aws:SourceArn, wenn Sie nur eine Ressource mit dem betriebsübergreifenden Zugriff verknüpfen möchten. Verwenden Sie aws:SourceAccount, wenn Sie zulassen möchten, dass Ressourcen in diesem Konto mit der betriebsübergreifenden Verwendung verknüpft werden.

Der wirksamste Schutz gegen das Problem der verwechselten Stellvertreter ist die Verwendung des aws:SourceArn globalen Bedingungsschlüssels mit dem vollständigen ARN der Ressource. Wenn Sie den vollständigen ARN der Ressource nicht kennen oder wenn Sie mehrere Ressourcen angeben, verwenden Sie den aws:SourceArn globalen Bedingungsschlüssel mit Platzhaltern (*) für die unbekannten Teile des ARN. Zum Beispiel arn:aws:sagemaker:*:123456789012:*.

Das folgende Beispiel zeigt, wie Sie die globalen Konditionsschlüssel aws:SourceArn und aws:SourceAccount in SageMaker AI verwenden können, um das Problem des verwechselten Stellvertreters zu vermeiden.

{ "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

Das folgende Beispiel zeigt, wie Sie den aws:SourceArn globalen Bedingungsschlüssel verwenden können, um das dienstübergreifende Confused Deputy Problem für SageMaker Edge Manager zu verhindern, das durch die Kontonummer 123456789012 in der Region us-west-2 verursacht wurde.

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:*" } } } }

Sie können das aws:SourceArn in dieser Vorlage enthaltene durch den vollständigen ARN eines bestimmten Paketierungsauftrags ersetzen, um die Berechtigungen weiter einzuschränken.

SageMaker -Images

Das folgende Beispiel zeigt, wie Sie den aws:SourceArn globalen Bedingungsschlüssel verwenden können, um das Problem des dienstübergreifenden verwirrten Stellvertreters für SageMaker Images zu verhindern. Verwenden Sie diese Vorlage entweder mit Image oder ImageVersion. In diesem Beispiel wird ein ImageVersion Datensatz-ARN mit der Kontonummer 123456789012 verwendet. Beachten Sie, dass Sie keinen aws:SourceAccount Wert angeben müssen, da die Kontonummer Teil des aws:SourceArn Werts ist.

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/*" } } } }

Ersetzen Sie das aws:SourceArn in dieser Vorlage nicht durch den vollständigen ARN eines bestimmten Images oder einer bestimmten Image-Version. Der ARN muss das oben angegebene Format haben und entweder image oder image-version angeben. Der partition Platzhalter sollte entweder eine AWS kommerzielle Partition (aws) oder eine AWS Partition in China (aws-cn) bezeichnen, je nachdem, wo das Image oder die Image-Version ausgeführt wird. Ebenso kann der region Platzhalter im ARN eine beliebige gültige Region sein, in der SageMaker-Bilder verfügbar sind.

SageMaker-AI-Inferenz

Das folgende Beispiel zeigt, wie Sie den aws:SourceArn globalen Bedingungsschlüssel verwenden können, um das dienstübergreifende Confused-Deputy-Problem für Echtzeit-, Serverless- und asynchrone Inferenz von SageMaker AI zu verhindern. Beachten Sie, dass Sie keinen aws:SourceAccount Wert angeben müssen, da die Kontonummer Teil des aws:SourceArn Werts ist.

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:*" } } } }

Ersetzen Sie das aws:SourceArn in dieser Vorlage nicht durch den vollständigen ARN eines bestimmten Modells oder Endpunkts. Der ARN muss in dem oben angegebenen Format vorliegen. Das Sternchen in der ARN-Vorlage steht nicht für Platzhalter und sollte nicht geändert werden.

Batch-Transformationsaufträge von SageMaker AI

Das folgende Beispiel zeigt, wie Sie den globalen aws:SourceArn-Bedingungsschlüssel verwenden können, um das dienstübergreifende Confused-Deputy-Problem bei Batch-Transformationsaufträgen von SageMaker AI zu verhindern, die mit der Kontonummer 123456789012 in der Region us-west-2 erstellt wurden. Beachten Sie, dass Sie keinen aws:SourceAccount Wert angeben müssen, da sich die Kontonummer im ARN befindet.

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/*" } } } ] }

Sie können das aws:SourceArn in dieser Vorlage enthaltene durch den vollständigen ARN eines bestimmten Batch-Transformationsauftrags ersetzen, um die Berechtigungen weiter einzuschränken.

SageMaker AI Marketplace

Das folgende Beispiel zeigt, wie Sie den globalen aws:SourceArn-Bedingungsschlüssel verwenden können, um das dienstübergreifende Confused-Deputy-Problem für SageMaker-Marketplace-Ressourcen zu verhindern, die mit der Kontonummer 123456789012 in der Region us-west-2 erstellt wurden. Beachten Sie, dass Sie keinen aws:SourceAccount Wert angeben müssen, da sich die Kontonummer im ARN befindet.

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:*" } } } ] }

Ersetzen Sie das aws:SourceArn in dieser Vorlage nicht durch den vollständigen ARN eines bestimmten Algorithmus oder Modellpakets. Der ARN muss in dem oben angegebenen Format vorliegen. Das Sternchen in der ARN-Vorlage steht für Platzhalter und deckt alle Trainingsaufträge, Modelle und Batch-Transformationsaufträge aus Validierungsschritten sowie Algorithmus- und Modellpakete ab, die auf SageMaker AI Marketplace veröffentlicht wurden.

SageMaker Neo

Das folgende Beispiel zeigt, wie Sie den aws:SourceArn globalen Bedingungsschlüssel verwenden können, um das dienstübergreifende Confused Deputy Problem für SageMaker Neo-Kompilierungsaufträge zu verhindern, die mit der Kontonummer 123456789012 in der Region us-west-2 erstellt wurden. Beachten Sie, dass Sie keinen aws:SourceAccount Wert angeben müssen, da sich die Kontonummer im ARN befindet.

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/*" } } } ] }

Sie können das aws:SourceArn in dieser Vorlage enthaltene durch den vollständigen ARN eines bestimmten Kompilierungsauftrags ersetzen, um die Berechtigungen weiter einzuschränken.

SageMaker Pipelines

Das folgende Beispiel zeigt, wie Sie den aws:SourceArn globalen Bedingungsschlüssel verwenden können, um das dienstübergreifende Confused-Deputy-Problem für SageMaker-Pipelines zu verhindern, die Pipeline-Ausführungsdatensätze aus einer oder mehreren Pipelines verwenden. Beachten Sie, dass Sie keinen aws:SourceAccount Wert angeben müssen, da sich die Kontonummer im ARN befindet.

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/*" } } } ] }

Ersetzen Sie das aws:SourceArn in dieser Vorlage nicht durch den vollständigen ARN einer bestimmten Pipeline-Ausführung. Der ARN muss in dem oben angegebenen Format vorliegen. Der partition Platzhalter sollte entweder eine AWS kommerzielle Partition (aws) oder eine AWS Partition in China (aws-cn) bezeichnen, je nachdem, wo die Pipeline läuft. Ebenso kann der region Platzhalter im ARN eine beliebige gültige Region sein, in der SageMaker Pipelines verfügbar ist.

Das Sternchen in der ARN-Vorlage steht für Platzhalter und deckt alle Pipeline-Ausführungen einer Pipeline mit dem Namen mypipeline ab. Wenn Sie die AssumeRole Berechtigungen für alle Pipelines im Konto 123456789012 und nicht für eine bestimmte Pipeline gewähren möchten, dann wäre der aws:SourceArn gleich arn:aws:sagemaker:*:123456789012:pipeline/*.

SageMaker Verarbeitungsaufträge

Das folgende Beispiel zeigt, wie Sie den globalen aws:SourceArn-Bedingungsschlüssel verwenden können, um das Problem des serviceübergreifenden Confused-Deputy-Problems für SageMaker-Verarbeitungsaufträge zu verhindern, die mit der Kontonummer 123456789012 in der Region us-west-2 erstellt wurden. Beachten Sie, dass Sie keinen aws:SourceAccount Wert angeben müssen, da sich die Kontonummer im ARN befindet.

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/*" } } } ] }

Sie können das aws:SourceArn in dieser Vorlage enthaltene durch den vollständigen ARN eines bestimmten Verarbeitungsauftrags ersetzen, um die Berechtigungen weiter einzuschränken.

SageMaker Studio

Das folgende Beispiel zeigt, wie Sie den aws:SourceArn globalen Bedingungsschlüssel verwenden können, um das dienstübergreifende Confused Deputy Problem für SageMaker Studio zu verhindern, das durch die Kontonummer 123456789012 in der Region us-west-2 verursacht wurde. Beachten Sie, dass Sie keinen aws:SourceAccount Wert angeben müssen, da die Kontonummer Teil des aws:SourceArn Werts ist.

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:*" } } } ] }

Ersetzen Sie das aws:SourceArn in dieser Vorlage nicht durch den vollständigen ARN einer bestimmten Studio-Anwendung, eines Benutzerprofils oder einer Domain. Der ARN muss das im vorherigen Beispiel angegebene Format sein. Das Sternchen in der ARN-Vorlage steht nicht für Platzhalter und sollte nicht geändert werden.

SageMaker-Trainingsaufträge

Das folgende Beispiel zeigt, wie Sie den aws:SourceArn globalen Bedingungsschlüssel verwenden können, um das dienstübergreifende Problem der verwirrten Stellvertreter für SageMaker-Trainingsaufträge zu verhindern, die mit der Kontonummer 123456789012 in der Region us-west-2 erstellt wurden. Beachten Sie, dass Sie keinen aws:SourceAccount Wert angeben müssen, da sich die Kontonummer im ARN befindet.

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/*" } } } ] }

Sie können das aws:SourceArn in dieser Vorlage enthaltene durch den vollständigen ARN eines bestimmten Trainingsaufträge ersetzen, um die Berechtigungen weiter einzuschränken.

Nächstes Thema

Weitere Informationen zur Verwaltung von Ausführungsrollen finden Sie unter SageMaker-AI-Rollen.