Amazon web services 使用boto3访问其他aws用户s3存储桶

Amazon web services 使用boto3访问其他aws用户s3存储桶,amazon-web-services,amazon-s3,boto3,Amazon Web Services,Amazon S3,Boto3,我正在制作一个Django web应用程序,它可以列出用户s3 bucket,还可以让我访问s3 bucket中的其他用户文件。 是否有任何方法可以使用boto3访问其他用户帐户,如一些临时凭据 boto3具有为角色返回临时凭据的方法 为了使其正常工作,您访问的帐户必须具有一个具有允许访问S3存储桶的策略的角色,并且该角色本身必须与您呼叫的帐户具有信任关系 另外,运行django应用程序的实例应该具有允许权限的实例角色 代码看起来像 import boto3 sts = boto3.clien

我正在制作一个Django web应用程序,它可以列出用户s3 bucket,还可以让我访问s3 bucket中的其他用户文件。 是否有任何方法可以使用boto3访问其他用户帐户,如一些临时凭据

boto3具有为角色返回临时凭据的方法

为了使其正常工作,您访问的帐户必须具有一个具有允许访问S3存储桶的策略的角色,并且该角色本身必须与您呼叫的帐户具有信任关系

另外,运行django应用程序的实例应该具有允许权限的实例角色

代码看起来像

import boto3

sts = boto3.client('sts')
response = sts.assume_role(
    RoleArn='aws:arn:iam::OTHERACCOUNTID:role/role-that-allows-s3-access',
    RoleSessionName='my-random-session-name',
    DurationSeconds=900 # how many seconds these credentials will work
)

s3 = boto3.client(
    's3',
    aws_access_key_id=response['Credentials']['AccessKeyId'],
    aws_secret_access_key=response['Credentials']['SecretAccessKey'],
    aws_session_token=response['Credentials']['SessionToken']
)

response = s3.list_objects(
    Bucket='bucket-in-other-account'
)

OTHERACCOUNTID您是指其他用户创建的IAM用户id?我指的是另一个AWS帐户。在为特定IAM用户创建bucket的情况下,步骤相同,只需使用您自己的AWS帐号,并确保您假设的角色具有访问该用户的权限。那么['AccessKeyId']是什么??它是其他用户的吗?它是callsts=boto3生成的临时凭证的
AccessKeyId
。客户端('sts')应该在此行中提供访问密钥吗?其他帐户如何授予您访问权限?一些选项:Bucket策略、角色、用户。在开始编写代码之前,先考虑一下这个过程。