将文件从一个AWS账户中的s3存储桶复制到另一个账户的s3存储桶。 该任务所需的角色/策略是由IAM团队创建的,这超出了我的范围。 此lambda将在目标帐户中运行,并且必须从源存储桶中复制对象。
在运行lambda时,出现以下错误:
ClientError: An error occurred (403) when calling the HeadObject operation: Forbidden
我想知道我的代码中是否要解决某些问题,或者只是权限问题?
这是我的lambda。
import boto3
ID_list=['123456789101']
def lambda_handler(event, context):
for entry in ID_list:
sts_client = boto3.client('sts')
assumed_role_object=sts_client.assume_role(
RoleArn="arn:aws:iam::" + entry[0] + ":role/requiredrole",
RoleSessionName="SampleSession"
)
credentials=assumed_role_object['Credentials']
s3_resource=boto3.resource(
's3',
aws_access_key_id=credentials['AccessKeyId'],
aws_secret_access_key=credentials['SecretAccessKey'],
aws_session_token=credentials['SessionToken'],
)
##performing copy from one bucket to other
s3 = boto3.resource('s3')
source= { 'Bucket' : 'my-bucket' + entry[0], 'Key': 'test.csv'} ##source bucket,file details
dest_bucket = s3.Bucket('dest-bucket') #bucket in destination account
dest_bucket.copy(source, 'test1.csv')
答案 0 :(得分:0)
我认为这是一个权限问题,您无法访问源存储桶或目标存储桶。