簡體   English   中英

AWS CDK:如何在另一個賬戶中訪問 VPC

[英]AWS CDK: How to access VPC in another account

我需要從我的“工具”賬戶訪問我的暫存/生產賬戶的 VPC 中的資源(我在兩個 VPC 中都有一個 RDS 實例,並且希望將架構升級自動化作為我的 CI/CD 的一部分)。

如何從“工具”賬戶的堆棧中的暫存/生產賬戶導入 VPC?

Vpc.fromLookup()不起作用,因為它在堆棧的區域和帳戶中搜索 VPC,但不在其他區域/帳戶中搜索。

編輯:

我想在“工具”帳戶中授予 CodeBuild 項目(CodePipeline 的一部分)對生產/登台帳戶的 VPC 中的 RDS 實例的訪問權限。 為了授予它訪問權限,我在 CodeBuild 項目中使用了vpc屬性

我不確定使用 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,
});

為此,您需要執行以下操作之一:

  • 從“其他帳戶”擔任角色。
  • 通過在 CLI 上執行變量導出,使用擔任此角色的憑據來檢索您的值。

這必須在運行 cdk 命令之前使用 sts assume-role命令執行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM