我需要从我的“工具”帐户访问暂存/生产帐户的VPC中的资源(我在两个VPC的每一个中都有一个RDS实例,并且希望作为我的CI / CD的一部分自动进行模式升级)。 / p>
如何从“工具”帐户中的堆栈中的暂存/生产帐户导入VPC?
Vpc.fromLookup()
不起作用,因为它在堆栈的区域和帐户中搜索VPC,但不在其他区域/帐户中搜索。
编辑:
我想授予“工具”帐户中的CodeBuild项目(CodePipeline的一部分)访问产品/暂存帐户的VPC中的RDS实例的权限。
要授予它访问权限,我在CodeBuild项目上使用vpc
attribute。
我不确定使用CodePipeline / CodeBuild解决架构升级的最佳方法是什么。 理想情况下,RDS实例应位于专用/隔离的子网中。
const dbMigrateBuild = new codebuild.PipelineProject(this, 'MigrateBuild', {
buildSpec: codebuild.BuildSpec.fromSourceFilename('buildspec-migrate.yml'),
environment: {
buildImage: codebuild.LinuxBuildImage.STANDARD_4_0,
},
environmentVariables: {
migrationBucketId: {
type: codebuild.BuildEnvironmentVariableType.PLAINTEXT,
value: sourceOutput.bucketName,
},
dbEndpoint: {
type: codebuild.BuildEnvironmentVariableType.PLAINTEXT,
value: dbEndpoint,
},
dbSecretId: {
type: codebuild.BuildEnvironmentVariableType.PLAINTEXT,
value: dbSecretId,
},
},
vpc: ec2.Vpc.fromLookup(this, 'Vpc', { vpcId }), // <-- this is not working
});
// dbMigrateBuild.connections.allowToDefaultPort(db); // how to grant permission ??
const dbMigrateAction = new codepipeline_actions.CodeBuildAction({
actionName: 'Db_Migrate',
project: dbMigrateBuild,
input: sourceOutput,
runOrder: 130,
});
答案 0 :(得分:0)
为此,您需要执行以下一项操作:
必须在使用sts assume-role命令运行cdk命令之前执行此操作。