Amazon DynamoDB で GET または PUT リクエストを作成しようとすると、「リクエストに含まれるセキュリティトークンが無効です」というエラーが表示されます。
簡単な説明
次の状況では、リクエストに含まれるセキュリティトークンが無効であることを示すエラーが発生することがあります。
- AWS クライアントの一時的な認証情報を使用しており、その認証情報の有効期限が切れた。
- リクエストの認証に使用したセキュリティトークンに問題がある。
- Amazon Elastic Compute Cloud (Amazon Ec2) インスタンスの日付と時刻が正しく設定されていないため、AWS 認証情報が拒否された。
解決策
注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
Amazon Time Sync Service または別の NTP ソースを使用する
インスタンスの正確な時間基準を維持するには、Amazon Time Sync Service または別のネットワークタイムプロトコル (NTP) ソースを設定します。
AWS 認証情報を更新する
認証情報を確認するには、update-access-key を --debug 設定付きで実行します。セキュリティトークンサービスを使用する場合は、get-caller-identity コマンドを実行します。AWS 認証情報が正しくない場合は、AWS CLI を使用して AWS アクセスキー ID とシークレットアクセスキーを更新します。
正しい認証情報を使用して AWS CLI または AWS SDK を設定する
AWS CLI で認証情報を設定するには、configure コマンドを実行します。
AWS SDK で認証情報を設定するには、環境変数、AWS 認証情報ファイル、または AWS Secrets Manager を使用できます。
一時的な認証情報を更新する
DynamoDB で一時的な認証情報を使用する場合は、認証情報が有効期限切れに設定される 5 分前に認証情報を更新してください。
インスタンスに IAM ロールを使用する
EC2 インスタンスをクライアントマシンとして使用する場合は、インスタンスにインスタンスプロファイルをアタッチします。コードやインスタンスで他の認証情報を指定しないようにしてください。インスタンスプロファイルは、デフォルトの認証情報プロバイダーチェーンが認証情報を検索する最後の場所です。認証情報が検索チェーンで、それよりも前にある場合、AWS Identity and Access Management (IAM) ロールは使用できません。詳細については、「構成と認証情報の優先順位」を参照してください。
認証情報をローテーションする
問題が解消しない場合は、認証情報をローテーションしてください。
関連情報
SDK に一時的な認証情報を指定する