2017-12-08 1 views
1

Ich erhalte einen Fehler, wenn ich get_execution_role() von sagemaker in Python aufruft. Ich habe den Fehler für das gleiche beigefügt. enter image description hereDie aktuelle AWS-Identität spielt für Sagemaker keine Rolle?

Ich habe die SagemakerFullAccess-Richtlinie für Rolle und Benutzer beide hinzugefügt.

+0

Sie sicher, dass Sie Rolle arn nicht vom Benutzer arn verwendet? –

+0

Ich versuchte mit der Rolle und Benutzer arn, aber es funktioniert nicht –

Antwort

0

vielen Dank, dass Sie SageMaker ausprobiert haben!

Die Ausnahme, die Sie sehen, schlägt bereits den Grund vor. Die Anmeldeinformationen, die Sie verwenden, sind keine Anmeldeinformationen für die Rolle, sondern höchstwahrscheinlich ein Benutzer. Das Format 'user' Berechtigungsnachweis wird wie folgt aussehen:

'arn: aws: iam :: accid: user/name' als einer Rolle gegen: ‚arn: aws: iam :: accid: Rolle/name '

Hoffe das hilft!

+0

Dank luk75, habe ich sowohl für Benutzer und Rolle versucht, es hat nicht funktioniert. –

+0

Hey, eine andere Option, die mir kommt ist, dass der Musterabgleich aus irgendeinem Grund fehlgeschlagen ist. Vielleicht könnten Sie die Zeichenfolge nach der Konto-ID anzeigen? Insbesondere der Name der Rolle (Zeichenfolge nach Rolle /) - möglicherweise sind einige Zeichen vorhanden, die den Mustervergleich deaktivieren. Wenn der Name anders ist als ein einfacher Name, versuchen Sie bitte, eine andere Rolle zu erstellen und versuchen Sie es damit, um festzustellen, ob dies der Fall ist. – luk75

+0

Wenn du sagst, dass es für eine Rolle nicht funktioniert hat - kannst du erklären, was du meinst? Erhalten Sie genau den gleichen Fehler wie oben für den Benutzer? – ishaaq

0

ich mit diesem für eine Weile zu kämpfen und es gibt ein paar andere Stücke, aber ich glaube, das sind die Schritte zu lösen sind (gemäß dieser doc)

Sie müssen eine Rolle zu Ihrer aws-Konfigurationsdatei hinzufügen. Zum Terminal und geben Sie ein:

~/.aws/config 

Fügen Sie Ihr eigenes Profil

[profile marketingadmin] 
role_arn = arn:aws:iam::123456789012:role/marketingadmin 
source_profile = default 

dann Bearbeiten Vertrauensbeziehungen im AWS Dashboard:

enter image description here

fügen Sie diese und Update:

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
    { 
     "Effect": "Allow", 
     "Principal": { 
     "Service": "sagemaker.amazonaws.com", 
     "AWS": "arn:aws:iam::XXXXXXX:user/YOURUSERNAME" 
     }, 
     "Action": "sts:AssumeRole" 
    } 
    ] 
} 

Schließlich klickte ich den Link, die

Geben Sie diesen Link an Benutzer sagt, die Rollen in der Konsole

Nach dem Hinzufügen meines Beglaubigungsschreibens umschalten kann - ich glaube, es hat funktioniert, aber ich messed um mit vielen von dem IAM-Dienst, damit es funktioniert, lass es mich wissen, wenn es immer noch nicht funktioniert und ich werde versuchen, mehr hinzuzufügen!

1

get_execution_role() ist ein Funktionshelfer, der in Amazon SageMaker Examples GitHub repository verwendet wird.

Diese Beispiele wurden erstellt, um aus den vollständig verwalteten Jupyter-Notebooks ausgeführt zu werden, die Amazon SageMaker bereitstellt.

Aus dem Innern dieses Notebooks, get_execution_role() werden die IAM-Rollennamen zurück, die als Teil der Notebooks Schöpfung übergeben wurde. Dadurch können die Notebook-Beispiele ohne Codeänderungen ausgeführt werden.

Von außerhalb dieser Notizbücher wird get_execution_role() eine Ausnahme zurückgeben, weil es nicht weiß, was der Rollenname ist, den SageMaker benötigt.

Lösung Um dieses Problem zu beheben, übergeben Sie den IAM-Rollennamen anstelle von get_execution_role().

Statt:

role = get_execution_role() 

kmeans = KMeans(role=role, 
       train_instance_count=2, 
       train_instance_type='ml.c4.8xlarge', 
       output_path=output_location, 
       k=10, 
       data_location=data_location) 

Sie tun müssen:

role = 'role_name_with_sagemaker_permissions' 

kmeans = KMeans(role=role, 
       train_instance_count=2, 
       train_instance_type='ml.c4.8xlarge', 
       output_path=output_location, 
       k=10, 
       data_location=data_location) 
Verwandte Themen