2016-06-28 13 views
0

私はいくつかのaws-iot Javaコードをboto3を使用するように変換しています。新しい役割を作成するときにスタックしています。古いコードでは、役割のポリシーを指定するときにポリシー名を指定しますが、boto3でそのポリシーを指定する方法はわかりません。 (:withId(assumePolicyName)注):ここでは、Javaコードのブロックです新しいロールを作成するときに、どのようにポリシー名を指定しますか?

self.iamClient.create_role(RoleName=role_name, AssumeRolePolicyDocument={ 
      'Statement': [ 
       { 
        'Principal': { 
         'Service': ['iot.amazonaws.com'] 
        }, 
        'Effect': 'Allow', 
        'Action': ['sts:AssumeRole'] 
       }, 
      ] 
     } 

方法:boto3とassumePolicyNameを指定する場所を、私は理解することはできません

iamClient.createRole(new CreateRoleRequest() 
       .withRoleName(role) 
       .withAssumeRolePolicyDocument(new com.amazonaws.auth.policy.Policy() 
        .withId(assumePolicyName) 
        .withStatements(new Statement(Statement.Effect.Allow) 
         .withActions(() -> "sts:AssumeRole") 
         .withPrincipals(new Principal("Service", "iot.amazonaws.com"))) 
        .toJson() 
       ) 
      ); 

が、ここで私はboto3に持っているものです私はポリシー名を指定するのですか?

答えて

0

私はかなり近かった。私はちょうどいくつかの試行錯誤を試みるべきだった。正しい解決策は次のとおりです。

self.iamClient.create_role(RoleName=role_name, AssumeRolePolicyDocument={ 
       'Id': 'assume_role_id', 
       'Statement': [ 
       { 
        'Principal': { 
         'Service': ['iot.amazonaws.com'] 
        }, 
        'Effect': 'Allow', 
        'Action': ['sts:AssumeRole'] 
       } 
      ] 
     } 
0

私が知る限り、IAMはポリシー名をAssumedRolePolicyDocumentと関連付ける方法を提供していません。役割ごとに1つのこのようなポリシーしか存在しない可能性があり、これらの信頼関係を役割間で共有することができないため、名前の目的がどのような目的に役立つかはわかりません。

関連する問題