簡體   English   中英

AWS Lambda + DynamoDB 請求中的安全令牌無效

[英]AWS Lambda + DynamoDB Invalid security token in request

我有一個與 DynamoDB 連接的 Lambda function。 如果我構建和部署這個 function 並在我的 AWS 控制台中運行它,它工作得很好,但如果我嘗試從我的 IDE (Intellij) 執行它,它就不起作用。 我收到以下錯誤消息:

The security token included in the request is invalid (Service: AmazonDynamoDBv2; Status Code: 400; Error Code: UnrecognizedClientException; 

我嘗試在這里查看其他問題,但似乎沒有任何鍛煉。 我有兩個用戶,每個用戶都有一個組。 其中一個具有 AdministratorAcces,另一個具有 DynamoDBFullAccess 和 AWSLambda_FullAccess 權限。 他們都不能在本地執行 function。 嘗試使用 cmd 中的aws configure重新配置我的憑據。

我還嘗試創建新的安全憑證。 問題不在於 function 因為如果我刪除 DynamoDB 連接代碼並在本地運行和部署 function 或將其部署在我的 AWS 控制台中成功執行。 無論如何,我將在我的連接代碼下方發布:

    AmazonDynamoDB client = AmazonDynamoDBClientBuilder.defaultClient();
    DynamoDBMapper mapper = new DynamoDBMapper(client);

    MyCustomData data = new MyCustomData("test","12313","test2");
    mapper.save(data);

編輯:

我一直在調試發生確切問題的代碼,似乎在 class AmazonHttpCLient.java中有一個檢查憑據的部分。 關鍵是AWSCredentials object中有三個屬性: 在此處輸入圖像描述

我在 ~/.aws/credentials 中的憑據沒有 sessionToken 參數,我在任何時候都設置了它。 另外我的一個朋友調試了同一個項目,說他調試的時候沒有屬性sessionToken 我嘗試重新安裝 AWS CLI、SAM 和 Intellij,刪除憑證文件並檢查我的變量環境中是否沒有憑證,但問題仍然存在。

很可能,此錯誤是由於用於與 AWS 賬戶建立連接的憑證/aws 配置文件造成的。

要使用 IntelliJ IDEA 解決此問題,我建議您將AWS Toolkit安裝到您的 IntelliJ IDEA 中。 此外,使用 AWS Toolkit 找出要使用哪個 aws 配置文件來滿足您的使用案例。

否則,請參閱此現有線程以獲取更多其他選項

我設法通過降級我的 SAM CLI 版本來解決這個問題。 它在 1.15.0 中,我的朋友在 1.6.2 中。 所以我下載了那個特定的版本並像一個魅力一樣工作。

我不知道為什么會發生這種情況,但我希望這在未來的版本中得到修復。

我希望它可以幫助遇到這個問題的人。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM