2017-12-08 16 views
1

pythonでsagemakerからget_execution_role()を呼び出すとエラーが発生します。 同じエラーを付けました。 enter image description here現在のAWS IDはsagemakerの役割ではありませんか?

ロールとユーザーの両方にSagemakerFullAccessポリシーを追加しました。

+0

あなたが役割ARNないユーザーのARNを使用あなたは確か? –

+0

私はロールとユーザーarnの両方で試してみましたが、うまく動作しませんでした。 –

答えて

0

SageMakerをお試しいただきありがとうございます!

あなたが既に見ている例外は、理由を示唆しています。使用している資格情報はロール資格情報ではなく、おそらくユーザーです。

「ARN:AWS:IAM :: accid:ユーザー/名の役割とは対照的に、: 「ARN:AWS:IAM :: accid:役割/名前を 'ユーザー' の資格情報の 形式は次のようになります'

希望します。

+0

ありがとうございましたluk75、私は両方のユーザーと役割のために試してみましたが動作しませんでした。 –

+0

ねえ、別の選択肢は、何らかの理由でパターンマッチングが失敗したということです。たぶんあなたはアカウントのIDの後に文字列を表示することができますか?具体的には、役割名(role after role /)です。おそらく、パターンマッチングをオフにする文字がいくつかあります。 また、名前が単純な名前以外の場合は、別の役割を作成して、それが問題であるかどうか試してみてください。 – luk75

+0

また、それは役割のために働かなかったと言う - あなたが意味するものを説明することはできますか?あなたは、上記のユーザーとまったく同じエラーを受け取りますか? – ishaaq

0

は、私はしばらくの間、これで苦労し、いくつかの異なる部分がありますが、私は、これらは

あなたのAWS設定ファイルに役割を追加する必要があります(このdocによる)を解決するためのステップであると信じています。ターミナルに移動し、次のように入力します

~/.aws/config 

は、AWSのダッシュボードの編集信頼関係次に

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

、独自のプロファイルを追加します。

enter image description here

これを追加すると、更新:

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

最後に、私は

が私の資格情報を追加した後、コンソール

で役割を切り替えることができ、ユーザーにこのリンクを与えるというリンクをクリックした - 私はそれが働いていたが、私はたくさんの周りめちゃめちゃ信じますIAMサービスの機能が正常に動作するようにしてください。まだ動作しない場合はお知らせください。さらに追加する予定です。

1

get_execution_role()は、Amazon SageMaker Examples GitHub repositoryで使用される関数ヘルパーです。

これらの例は、Amazon SageMakerが提供する完全に管理されたJupiterノートブックから実行されました。

get_execution_role()は、ノートブックの作成の一部として渡されたIAMロール名を返します。これにより、コード変更なしでノートブックの例を実行することができます。

get_execution_role()は、SageMakerが必要とする役割名がわからないため例外を返します。

この問題を解決するには、get_execution_role()を使用する代わりに、IAMのロール名を渡します。

の代わりに:

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) 

、あなたは何をする必要があります。

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) 
関連する問題