繁体   English   中英

CDK cloud9 - 如何将预先构建的实例配置文件附加到 cdk 中的 Cloud9 实例 iam 角色?

[英]CDK cloud9 - How to attach preconstructed instance profile to Cloud9 instance iam role in cdk?

我通过 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 实例页面上) 在此处输入图像描述

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM