2017-03-28 3 views
0

残念ながら、私はこの作業のためにサーバーの日数を失いました。別のawsアカウントによって公開されたAWS IAMロールでクレデンシャルを取得できますか?

IAMロールで一時的な資格情報を取得するにはどうすればよいですか?これは可能ですか?ここ

は私のシナリオとコードです。(AWS SDKのjavaに)

  • STSインスタンスAWSアカウントのアクセスキーと秘密鍵

    によって
    AWSSecurityTokenService tokenService = new AWSSecurityTokenServiceClient(new BasicAWSCredentials(awsProperty.getAccess(), awsProperty.getSecret())); 
    
  • AssumeRoleRequest

    AssumeRoleRequest assumeRoleRequest = new AssumeRoleRequest(); 
    assumeRoleRequest.setRoleArn(arn); 
    assumeRoleRequest.setDurationSeconds(900); 
    assumeRoleRequest.setRoleSessionName("for_test"); 
    assumeRoleRequest.setExternalId("ext_id"); 
    
  • を作りますSessionCredentialsを取得する

    AmazonCloudFrontClient cloudFrontClient = new AmazonCloudFrontClient(awsCredentials); 
    
AssumeRoleResult roleResult = tokenService.assumeRole(assumeRoleRequest); 
Credentials credentials = roleResult.getCredentials(); 

AWSCredentials awsCredentials = new BasicSessionCredentials(credentials.getAccessKeyId(), credentials.getSecretAccessKey(), credentials.getSessionToken()); 
  • 仕事はそれは私はこのようなポリシーを作るAWSSecurityTokenServiceException

    User: arn:aws:iam::{account}:user/{user_name} is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::{role_account}:role/{role_name} (Service: AWSSecurityTokenService; Status Code: 403; Error Code: AccessDenied; 
    

    をスローします。 IAM役割とIAMユーザーの両方に接続します。

    { 
        "Version": "2012-10-17", 
        "Statement": [ 
         { 
          "Sid": "Stmt1490674259000", 
          "Effect": "Allow", 
          "Action": [ 
           "sts:AssumeRole" 
          ], 
          "Resource": [ 
           "*" 
          ] 
         } 
        ] 
    } 
    

    EDIT:

    私はIAMポリシーシミュレータとポリシー(変更)をテストしました。 AWS Security Token Service-AssumeRoleIAM Role ARNと選択してください。

  • +1

    あなたは別のAWSアカウントで役割を担っていますか?あなたの役割には[信頼関係](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html)が定義されていますか? –

    +0

    @JohnRotensteinは本当にありがとう!私は信頼関係を確認し、パラメータを修正する。できます! – myoungjin

    答えて

    1

    IAMロールにtrust relationshipを追加して、それを想定してください。

    +0

    ありがとう!できます! – myoungjin

    関連する問題