【问题标题】:CDK cloud9 - How to attach preconstructed instance profile to Cloud9 instance iam role in cdk?CDK cloud9 - 如何将预先构建的实例配置文件附加到 cdk 中的 Cloud9 实例 iam 角色?
【发布时间】:2022-06-10 23:33:52
【问题描述】:

我通过 cdk 创建了 cloud9 实例和 vpc 环境。还有角色权限和实例配置文件,我如何在最后通过 cdk 附加它?

目前Ec2Environment中似乎没有关于设置iam角色的内置参数

如果我使用 CloudFormation 也无法自动实现这一点,所以我认为这还不可用?

我知道我可以使用自定义资源或创建 lambda 来实现这一点,但我认为仅用于附加实例配置文件有点过分

我的代码:

const c9IamRole = new iam.Role(this, 'C9IamRole', {
      roleName: 'cloud9-admin-access-role',
      assumedBy: new iam.ServicePrincipal('ec2.amazonaws.com'),
      managedPolicies: [
        iam.ManagedPolicy.fromAwsManagedPolicyName('AdministratorAccess'),
      ]
    });

    const c9InstanceProfile = new iam.CfnInstanceProfile(this, 'C9InstanceProfile', {
      roles: [c9IamRole.roleName],
    });

    // create a cloud9 ec2 environment in a new VPC
    const vpc = new ec2.Vpc(this, 'VPC', { maxAzs: 3 });
    const c9Env = new cloud9.Ec2Environment(this, 'Cloud9Env', {
      vpc,
      instanceType: ec2.InstanceType.of(ec2.InstanceClass.T3, ec2.InstanceSize.MICRO),
    });

我要附加实例配置文件的 IAM 角色(在创建的 cloud9 ec2 实例页面上)

【问题讨论】:

    标签: amazon-web-services amazon-ec2 aws-cdk cloud9-ide aws-cloud9


    【解决方案1】:

    任何使用 Cfn 前缀方法的都是 L1 构造。它们没有必要的钩子来自动将它们应用到其他构造(l2 和 l3 - 更高级别的对象) - 它们只是简单的骨架,基本上只是从您的代码到 cfn 模板 sn-p 的转换。

    如果 iam.CfnInstanceProfile 没有 l2 或 l3 版本(在这个答案中似乎没有,但 CDK 团队一直在更新),那么您必须使用其他 cfn 方法手动附加它。

    此外,cloud9 库(在撰写本文时)仍处于实验阶段,这很好地表明它不会拥有所需的所有东西 - 它似乎没有任何附加角色的属性。您可能能够手动(再次使用 cfn 转义舱口方法)附加角色。

    您可以尝试将角色应用于用户/组并授予他们访问 cloud9 的权限,而不是将角色附加到 cloud9 并允许各种身份 - 使用当前的 CDK 构造可能更容易。

    【讨论】:

      猜你喜欢
      • 2021-11-10
      • 1970-01-01
      • 2021-07-24
      • 2020-09-02
      • 1970-01-01
      • 2019-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多