【问题标题】:How to refresh token in STS connection and S3 connection in AWS? Receiving expired token error in boto3 operation如何在 AWS 中刷新 STS 连接和 S3 连接中的令牌?在 boto3 操作中收到过期令牌错误
【发布时间】:2022-07-20 18:48:41
【问题描述】:

我是 Python 和编程的新手,所以我很感激任何帮助。

我正在与另一个 AWS 账户建立连接,因此我需要从承担角色建立一个 sts 连接,然后连接到另一个账户的 S3。 我需要执行一个需要数小时的复制对象操作,我收到了这个错误:

botocore.exceptions.ClientError:调用 CopyObject 操作时发生错误(ExpiredToken):提供的令牌已过期。

我的代码在运行时是这样的,建立连接 sts 和 s3:

def credential_assume_role(client):
    sts_connection = client

    assumed_role_object = sts_connection.assume_role(
        RoleArn="arn:roleexample",
        RoleSessionName="cross_acct_ecs"
    )
    return assumed_role_object['Credentials']

def main():
    credentials = credential_assume_role(boto3.client('sts'))
    s3_client = boto3.client(
        's3',
        aws_access_key_id=credentials['AccessKeyId'],
        aws_secret_access_key=credentials['SecretAccessKey'],
        aws_session_token=credentials['SessionToken'],
    )

我正在阅读 boto3 中的 RefreshableCredentials 库,但我仍然不太了解这个概念。

有什么建议可以让我在 1 小时后重新创建令牌?

【问题讨论】:

    标签: python-3.x amazon-web-services boto3 sts assume-role


    【解决方案1】:

    您的 AWS 会话令牌已过期。如果您的复制操作花费的时间超过了令牌的生命周期,那么您需要让您的 AWS 管理员增加令牌的时间限制。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-25
      • 2021-12-05
      • 2023-03-16
      • 1970-01-01
      • 2019-05-28
      • 2019-02-11
      • 2014-09-18
      相关资源
      最近更新 更多