2016-08-06 26 views
0

である私は〜/ .aws /資格情報と設定ファイルを持っているし、私のコードはDynamoDBのは、リクエストに含まれるセキュリティトークンが無効UnrecognizedClientException

clientConfiguration.setProxyHost("MYPROXY"); 
      clientConfiguration.setProxyPort(port); 
      clientConfiguration.setProxyUsername("username"); 
      clientConfiguration.setProxyPassword("pw"); 
      clientConfiguration.setPreemptiveBasicProxyAuth(false); 


      AmazonDynamoDBClient client = new AmazonDynamoDBClient(new ProfileCredentialsProvider("MY_PROFILE"),clientConfiguration); 

     //client.withRegion(Regions.US_EAST_1); 
     DynamoDBMapper mapper = new DynamoDBMapper(client); 

     // Get a book - Id=101 
     GetBook(mapper, 101); 

を下回っている私は、例外の下everytime.Iがでセッショントークンを見ることができます取得しています〜/ .aws /資格証明書での私の資格情報ファイル

Error running the DynamoDBMapperQueryScanExample: com.amazonaws.services.dynamodbv2.model.AmazonDynamoDBException: The security token included in the request is invalid. (Service: AmazonDynamoDBv2; Status Code: 400; Error Code: UnrecognizedClientException; Request ID: S0NTUAHKE57VC68FM3CVBOFAKFVV4KQNSO5AEMVJF66Q9ASUAAJG) 
    com.amazonaws.services.dynamodbv2.model.AmazonDynamoDBException: The security token included in the request is invalid. (Service: AmazonDynamoDBv2; Status Code: 400; Error Code: UnrecognizedClientException; Request ID: S0NTUAHKE57VC68FM3CVBOFAKFVV4KQNSO5AEMVJF66Q9ASUAAJG) 

AWS SDK 1.11.24のjava 資格情報が

[TES1_AWS_STSdigital_Dev_Developer] 
aws_access_key_id = XXXXX 
aws_secret_access_key = AAAAA 
aws_security_token = BBBBBBBB 
token_expiration = 2016-08-08T16:34:48Z 

[TEST2_AWS_TEST_Dev_ReadOnly] 
aws_access_key_id = MMMMMM 
aws_secret_access_key = NNNNNN 
aws_security_token = OOOOOOO 
token_expiration = 2016-08-08T16:34:48Z 

[TEST3_AWS_STSdigital_Prod_ProdSupport] 
aws_access_key_id = KKKKKKK 
aws_secret_access_key = LLLLLLLLL 
aws_security_token =FFFFFFFF 
token_expiration = 2016-08-08T16:34:48Z 

[TEST4_AWS_STSdigital_Prod_Monitoring] 
aws_access_key_id = WWWWWW 
aws_secret_access_key = SSSSSSSS 
aws_security_token = VVVVVVVVV 
token_expiration = 2016-08-08T16:34:48Z 
を提出

簡単なことで〜/ .aws/configに

[DEFAULT] 
scope = urn:amazon:webservices 

[saml_provider] 
url = https://myprivatesssaccess 
default_region = us-east-1 

[profile TEST1_AWS_STSdigital_Dev_Developer] 
saml_role = arn:aws:iam::44444444:role/TEST1_AWS_STSdigital_Dev_Developer 
region = us-east-1 

[profile TEST2_AWS_TEST_Dev_ReadOnly] 
saml_role = arn:aws:iam::3333333:role/TEST2_AWS_TEST_Dev_ReadOnly 
region = us-east-1 

[profile TEST3_STSdigital_Prod_ProdSupport] 
saml_role = arn:aws:iam::222222:role/TEST3_AWS_STSdigital_Prod_ProdSupport 
region = us-east-1 

[profile TEST4_AWS_STSdigital_Prod_Monitoring] 
saml_role = arn:aws:iam::1111111:role/TEST4_AWS_STSdigital_Prod_Monitoring 
region = us-east-1 
+0

どのSDKをお使いですか?あなたの資格情報ファイルのサニタイズ版を投稿できますか? –

+0

自分の資格情報ファイルを更新しました – chiru

+0

あなたが使用しようとしているプロファイルと資格情報は、aws cliを使用してこれらの作業を行いますか? – madeddie

答えて

0

スタートのconfigファイル。あなたはファイルのアクセス許可をチェックしましたか?少なくともLinuxからは、600またはユーザーの読み取り/書き込み、グループおよび世界のアクセスなしにする必要があります。

これらの認証情報が使用しようとしているアカウントに関連付けられていることをAWS側で確認しましたか?

資格情報を使用する簡単なコマンドを実行できますか? AmazonのCLI awsコマンドは、開始するのに最適な場所です。

aws ec2 help

良い最初のチェックです。そして、スポットEC2インスタンス価格履歴のような、一般的に利用可能であるいくつかの情報にアクセスしよう:

aws ec2 describe-spot-price-history --prod "Linux/UNIX" --start-time 2016-08-15

はあなたの出力の行数千人を与える必要があります。そして、自分のアカウント情報の一部にアクセスしよう:この時点で

aws ec2 describe-instances

は、あなたはすべてのCLIから取り組んでいる知っています。次のステップは、非常にJavaの接続性です。これは、〜/ .aws /がある同じホームディレクトリを持つ同じマシンから実行する場合には、今すぐ動作するはずです。

JavaからDynamoDBへのアクセスを毎日使用しています。いくつかのハードルをクリアすると、うまくいきます。

関連する問題