python boto3错误:无权对资源执行假定的角色

anaz8

我正在尝试将文件从一个帐户(源帐户)中的S3存储桶移动到另一个帐户(目标帐户)中的S3存储桶,我正在使用sagemaker笔记本,因此我具有sagemaker角色。我在具有完全s3访问权限和fullsagemaker访问权限的团队帐户中也有角色,并且在信任关系中,我给了目标帐户角色arn和sagemaker角色arn。目标帐户在其信任策略中还具有我的团队角色arn和sagemaker角色arn。

我试图承担我的团队角色,然后承担复制文件的目标角色。

    import boto3
    sts_client = boto3.client('sts')
assumed_teamrole_object = sts_client.assume_role(DurationSeconds=1800,
                                                 RoleArn='myteamrole',
                                                 RoleSessionName='test1')
    assumed_destrole_object = sts_client.assume_role(DurationSeconds=1800,
                                                 ExternalId='externalid provided by destination account',
                                                 RoleArn='destination account role',
                                                 RoleSessionName='test2')

前三行执行得很好。当我尝试承担目标角色时,出现错误

调用AssumeRole操作时发生错误(AccessDenied):用户:arn:aws:sts :: role / AmazonSageMaker-ExecutionRole- / SageMaker无权执行:资源上的sts:AssumeRole:arn:aws:iam :: destinationrole

是否有我想念的东西,我在做什么错。请帮忙。我没有任何用户,这只是角色

谢谢!

马辛

该错误消息表明您缺少sts:AssumeRole权限。您的评论表明是这种情况,因为您目前仅具有S3权限。

要解决此问题,可以将内联策略添加AmazonSageMaker-ExecutionRole角色,形式为:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Resource": "*"
        }
    ]
}

您可以进一步将限制Resourcearn:aws:iam::destinationrole但是对于测试,您可以尝试使用*as Resource

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章