I m making an app in android which will launch Ec2 instances on AWS cloud on button click, I have given all the information required in the APIs called to perform the action, but for some reason its giving an error.
Here is the code i m using to authenticate and launch,
private void initClients() {
CognitoCachingCredentialsProvider credentials = new CognitoCachingCredentialsProvider(
getApplicationContext(),
"xxxxxxxxxxxxxxx",
"us-east-1:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"arn:aws:iam::xxxxxxxxxxx:role/Cognito_GetITAuth_Role",
"arn:aws:iam::xxxxxxxxxxx:role/Cognito_GetITUnauth_Role",
Regions.US_EAST_1);
ec2 = new AmazonEC2Client(credentials);
Region usWest2 = Region.getRegion(Regions.US_EAST_1);
ec2.setRegion(usWest2);
}
public void onClick(View v) {
//Credential provider
try
{
initClients();
}
catch (Exception e) {
throw new AmazonClientException(Exception e)
//
}
// TODO Auto-generated method stub
//launch the ec2 instance
RunInstancesRequest runInstancesRequest = new RunInstancesRequest();
//put in specifications
runInstancesRequest.withImageId(OS)
.withInstanceType(Type)
.withMinCount(numInst)
.withMaxCount(numInst)
.withKeyName("Ec2Launch")
.withSecurityGroups("default");
//launch Ec2 Instance
System.out.println("Request Processed");
System.out.println("Launching...");
ec2.runInstances(runInstancesRequest);
//RunInstancesResult runInstancesResult = ec2.runInstances(runInstancesRequest);
System.out.println(numInst+" "+Type+" Ec2 Instance Launched");
and this is the Error I m getting in my android app log
08-05 21:24:32.513: I/System.out(559): Request Processed 08-05 21:24:32.513: I/System.out(559): Launching... 08-05 21:24:34.013: D/dalvikvm(559): GC_CONCURRENT freed 1341K, 54% free 3508K/7495K, external 1674K/3699K, paused 7ms+6ms
08-05 21:24:37.643: E/AndroidRuntime(559): FATAL EXCEPTION: main 08-05 21:24:37.643: E/AndroidRuntime(559): com.amazonaws.AmazonServiceException: Not authorized to perform sts:AssumeRoleWithWebIdentity (Service: AWSSecurityTokenService; Status Code: 403; Error Code: AccessDenied; Request ID: 603e12c3-3bb8-11e5-82fa-bfa5024e2360) 08-05 21:24:37.643: E/AndroidRuntime(559): at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:710) 08-05 21:24:37.643: E/AndroidRuntime(559): at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:385) 08-05 21:24:37.643: E/AndroidRuntime(559): at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:196) 08-05 21:24:37.643: E/AndroidRuntime(559): at com.amazonaws.services.securitytoken.AWSSecurityTokenServiceClient.invoke(AWSSecurityTokenServiceClient.java:875) 08-05 21:24:37.643: E/AndroidRuntime(559): at com.amazonaws.services.securitytoken.AWSSecurityTokenServiceClient.assumeRoleWithWebIdentity(AWSSecurityTokenServiceClient.java:496) 08-05 21:24:37.643: E/AndroidRuntime(559): at com.amazonaws.auth.CognitoCredentialsProvider.populateCredentialsWithSts(CognitoCredentialsProvider.java:670) 08-05 21:24:37.643: E/AndroidRuntime(559): at com.amazonaws.auth.CognitoCredentialsProvider.startSession(CognitoCredentialsProvider.java:555) 08-05 21:24:37.643: E/AndroidRuntime(559): at com.amazonaws.auth.CognitoCredentialsProvider.getCredentials(CognitoCredentialsProvider.java:370) 08-05 21:24:37.643: E/AndroidRuntime(559): at com.amazonaws.auth.CognitoCachingCredentialsProvider.getCredentials(CognitoCachingCredentialsProvider.java:440) 08-05 21:24:37.643: E/AndroidRuntime(559): at com.amazonaws.auth.CognitoCachingCredentialsProvider.getCredentials(CognitoCachingCredentialsProvider.java:76) 08-05 21:24:37.643: E/AndroidRuntime(559): at com.amazonaws.services.ec2.AmazonEC2Client.invoke(AmazonEC2Client.java:8817) 08-05 21:24:37.643: E/AndroidRuntime(559): at com.amazonaws.services.ec2.AmazonEC2Client.runInstances(AmazonEC2Client.java:4023) 08-05 21:24:37.643: E/AndroidRuntime(559): at com.example.getit.Awscomp$1.onClick(Awscomp.java:151) 08-05 21:24:37.643: E/AndroidRuntime(559): at android.view.View.performClick(View.java:2485)
These are the error i m getting, it says Im not authorized to do this operation, I have made two roles in IAM gave them admin access, apart from that I m using cognito credential provider to connect my app to the AWS.
I m not sure where I m going wrong. please help. Also sorry for the format of the error. Let me know if you guys have any questions. Thanks
Aucun commentaire:
Enregistrer un commentaire