有没有办法使用 AWS CDK 将 ServiceRoles 策略附加到手动创建的角色?

问题描述 投票:0回答:1

我正在尝试将

AWSGlueServiceRole
附加到 AWS CDK 应用程序中手动创建的角色。它可以通过 AWS IAM 控制台轻松附加,但我找不到通过 CDK 附加它的方法。

以下是我在 CDK 堆栈中创建角色的方法:

        self.glue_role = iam.Role(
            self,
            "GlueRole",
            role_name=f"glue-role",
            assumed_by=iam.ServicePrincipal("glue.amazonaws.com"),
            description="Allows Glue jobs to access AWS services and resources.",
        )

我可以轻松地将其他策略附加到该角色,如下所示:

        self.glue_role.add_managed_policy(
            iam.ManagedPolicy.from_aws_managed_policy_name("AmazonS3FullAccess")
        )
        self.glue_role.add_managed_policy(
            iam.ManagedPolicy.from_aws_managed_policy_name("AmazonSSMFullAccess")
        )
        self.glue_role.add_managed_policy(
            iam.ManagedPolicy.from_aws_managed_policy_name("CloudWatchFullAccess")
        )
        self.glue_role.add_managed_policy(
            iam.ManagedPolicy.from_aws_managed_policy_name("SecretsManagerReadWrite")
        )

我无法使用相同的

AWSGlueServiceRole
附加
add_managed_policy
,因为它不是收到以下错误的托管策略:

策略 arn:aws:iam::aws:policy/AWSGlueServiceRole 不存在或不可附加

我尝试了一种解决方案来创建具有确切权限的手动策略,如

AWSGlueServiceRole
并将其附加到角色并且它有效,但我想知道是否有直接的方法将此类服务角色策略附加到手动创建的角色。

我使用的是CDK版本2.142.1

amazon-web-services devops aws-glue aws-cdk cicd
1个回答
0
投票

附加服务角色策略时,您必须添加

service-role/
作为策略名称的前缀:

self.glue_role.add_managed_policy(
        iam.ManagedPolicy.from_aws_managed_policy_name("service-role/AWSGlueServiceRole")
    )

如果您查找策略,您还会在其 ARN 中看到它:arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole

© www.soinside.com 2019 - 2024. All rights reserved.