0

取得: リクエストに含まれるセキュリティ トークンが無効です

セッション トークンはどこで取得できますか? 現在のドキュメントはわかりにくいです。一方では、次のように述べています。

AWS::DynamoDB を使用して長期間の認証情報をリクエストすると、Amazon STS に対して一時的なセッション認証情報がリクエストされます。これらはプロセスでキャッシュされ、再利用されます。

そして次にそれは言います:

Amazon DynamoDB では、すべてのリクエストが短期間の認証情報で行われる必要があります (たとえば、セッション トークンが必要です)。

私がそれを提供しない場合、session_tokenはどこから来るのでしょうか? そして、呼び出しがそれを提供する場合、なぜそれが無効になるのでしょうか?

requires 'aws-sdk'

cred = {:access_key_id => 'xxxx', 
:secret_access_key => 'yyyy'}

#:session_token => ''}

ddb = AWS::DynamoDB.new(cred)
items = {...}
ddb.batch_write do |batch|
  batch.put('my_mappings', items)
end
4

2 に答える 2

0

試行錯誤の結果、次のように動作することがわかりました。

cred = {:access_key_id => 'xxxx', 
:secret_access_key => 'yyyy', :session_token => nil}

ddb = AWS::DynamoDB.new(cred)

私の元の例では、ddb ハンドルは特定の操作では機能しますが、batch_write では機能しません。「nil」を渡すと機能します。ドキュメントは不明確であり、現在のバージョンでは API に一貫性がありません。

于 2013-03-03T04:39:55.053 に答える
0

ドキュメントが間違っている/古い (GitHub のマスター ブランチで変更されている)。DynamoDB を使用するためにセッション資格情報は必要なくなりました。:access_key_idとだけを設定できるはずです:secret_access_key

セッション クレデンシャルが必要な場合は、 から取得できますAWS::STS

于 2013-03-02T20:51:58.250 に答える