AWS SDK for JAVA,在Eucalyptus中提供IAM服务



我正试图使用亚马逊AWS SDK开发Eucalyptus,但我总是被拒绝访问:public class App{

public static  AmazonEC2 ec2;
public static AmazonS3 s3;
public static  AmazonIdentityManagement identityManagement;
private static String ACCESS_KEY;
private static String SECRET_KEY;
private static String IDENTITY_END_POINT;
public static void init(){
    ACCESS_KEY="myaccesskey";
        SECRET_KEY="mysecretkey";
    IDENTITY_END_POINT="http://192.168.1.101:8773/services/Euare";
    AWSCredentials myCredential = new BasicAWSCredentials(ACCESS_KEY,SECRET_KEY);
    //ec2 = new AmazonEC2Client(myCredential);
   s3 = new AmazonS3Client(myCredential);
   //ec2.setEndpoint(EC2_END_POINT);    
   s3.setEndpoint(Walrus_END_POINT);
    identityManagement=new AmazonIdentityManagementClient(myCredential);
    identityManagement.setEndpoint(IDENTITY_END_POINT);  
  }
public static void main(String[] args) {
    // TODO Auto-generated method stub
    init();
     List<Bucket> buckets = s3.listBuckets();
        System.out.println("List of all buckets in your cloud:n");
        for (Bucket bucket : buckets) {
            System.out.println(bucket.getName()+"n");
   }
       CreateUserRequest createUserRequest=new        CreateUserRequest().withPath("/").withUserName("summer");
CreateUserResult createUserResult=identityManagement.createUser(createUserRequest); 

}}这就是我得到的错误:

线程"main"中的异常状态代码:404,AWS服务:AmazonIdentityManagement,AWS请求ID:null,AWS错误代码:null,AWS故障消息:null网址:com.amazonaws.http://AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:614)网址:com.amazonaws.http://AmazonHttpClient.executeHelper(AmazonHttpClient.java:312)网址:com.amazonaws.http://AmazonHttpClient.exexecute(AmazonHttpClient.java:165)网址:com.amazonaws.services.identitymanagementAmazonIdentityManagementClient.ioke(AmazonIdedentityManagementClient.java:3130)网址:com.amazonaws.services.identitymanagementAmazonIdentityManagementClient.getUser(AmazonIdedentityManagementClient.java:1201)在com.test2.Group.main(Group.java:107)

我不确定使用IAM API时会导致404的原因,您发布的代码似乎与发布的异常不匹配。

您没有说明您使用的是Eucalyptus和AWS Java SDK的哪个版本,但对于某些版本,有必要在端点URL中添加/,以便AWS Java SDK正确计算签名,例如,对于IAM:

"http://$EXAMLE:8773/services/Euare/"

然而,我不认为这会导致404问题。

您可以在此处找到有关将AWS Java SDK与Eucalyptus一起使用的详细信息:

https://github.com/eucalyptus/eucalyptus/wiki/HOWTO-Use-AWS-Java-SDK-with-Eucalyptus

带有Eucalyptus的AWS Java SDK的单元测试如下:

https://github.com/eucalyptus/eutester/tree/testing/eutester4j/com/eucalyptus/tests/awssdk

这包括IAM/STS服务的部分覆盖范围。

最新更新