[解決済み] リクエストに含まれるセキュリティトークンの有効期限が切れている
2022-02-17 16:49:56
質問
社内報告用に、Cloudwatchから多くのメトリクスを取得するスクリプトがあります。
スクリプトは、特定の地域のすべてのEC2インスタンスを繰り返し、過去2週間の5つのクラウドウォッチメトリクス(利用可能なすべての統計)を求める(毎回5日前、5分間隔で、これはちょうど1440クォータである)。私は想定されるセッションを使用しています。
session = Session(aws_access_key_id=AWS_ACCESS_KEY_ID, aws_secret_access_key=AWS_SECRET_ACCESS_KEY, region_name=regionName)
sts = session.client('sts')
response = sts.assume_role(
RoleArn=arn, # External role arn
RoleSessionName='role-name',
ExternalId='<some-id-here>',
)
tempAccessKeyId = response['Credentials']['AccessKeyId']
tempSecretAccessKey = response['Credentials']['SecretAccessKey']
tempSessionToken = response['Credentials']['SessionToken']
assumedSession = Session(
aws_access_key_id=tempAccessKeyId,
aws_secret_access_key=tempSecretAccessKey,
aws_session_token=tempSessionToken,
region_name=regionName)
スクリプトを実行すると、次のような例外が発生しました。
botocore.exceptions.ClientError: An error occurred (ExpiredToken) when calling the GetMetricStatistics operation: The security token included in the request is expired
スクリプトの実行中にトークンが失効しないようにする方法はありますか?boto3を使っています。
どのように解決するのですか?
使用しているassume_roleメソッドは、以下を返します。 一時的 のセキュリティ認証が必要です。から取得します。 公式ドキュメント :
一時的なセキュリティ資格情報は、AssumeRole の呼び出し時に指定した期間、900 秒 (15 分) から 3600 秒 (1 時間) の範囲で有効です。デフォルトは1時間です。
を使用していないため
DurationSeconds
キーワード引数を指定すると、返された認証情報はデフォルトの1時間だけ有効です。1時間後にリクエストを行うには、新しいクレデンシャルを必ず取得する必要があります。の以下を参照してください。
Temporary Security Credentials 公式ドキュメント
:
一時的なセキュリティ認証情報の有効期限が切れたとき(またはその前でも)、要求したユーザーがまだそのための権限を持っている限り、ユーザーは新しい認証情報を要求することができます。
関連
-
[解決済み] s3 - HeadObject 操作を呼び出すときに、エラーが発生しました (403)。Forbidden
-
[解決済み] DynamoDBテーブルの複数の項目を一度に更新する方法
-
[解決済み] AWS-CLI: autoscalinggroupsをリストダウンする方法
-
[解決済み] CloudFormation Stack Errors with REST API Doesn't Contain Any Methods
-
[解決済み] アクセスポイントを経由してAmazon S3へのロールを認可する
-
[解決済み] DynamoDB Upsert - Update or Create?
-
[解決済み] AWSです。CloudFormationのテンプレートでbooleanパラメータを指定する方法
-
[解決済み] s3バケットから複数ファイルをコピーする
-
[解決済み] Terraform AWS Provider の有効なクレデンシャルソースが見つかりません。
-
[解決済み] EC2でインスタンスを削除するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】AWS CLI S3 HeadObject操作の呼び出し時に、クライアントエラー(403)が発生しました。Forbidden
-
[解決済み] -bash: aws: コマンドが見つかりませんでした。
-
[解決済み] AzureにはAWSのCloudFormationのようなIaCツールはあるのでしょうか?[クローズド]
-
[解決済み] AWSでロールを引き受ける際のRoleSessionNameのユースケースとパフォーマンスへの影響について
-
[解決済み] MSCK REPAIR TABLEは裏で何をしているのか、なぜこんなに遅いのか?
-
[解決済み] AWS KinesisとEventBridgeの違いは何ですか?
-
[解決済み] AWS SNSとAWS SQSのFIFOキューを統合することは可能か?
-
[解決済み] AWS CLIでワイルドカードを使用してファイル群を`cp`するにはどうすればよいですか。
-
[解決済み] "保護されていない秘密鍵ファイル!" Amazon EC2インスタンス(AWS)へのSSH利用時のエラーについて
-
[解決済み】Amazon EC2とAWS Elastic Beanstalkの違いについて