如何使用跨帐户CodeCommit储存库与Terraform?



现在我们正在使用Terraform的两个AWS账户(INT和PROD)。目前,我们在两个帐户中都有相同的存储库,这显然不是最佳实践,所以我试图设置跨帐户访问。我们的目标是只在INT帐户上拥有reppos,并使PROD帐户上的CodeBuild项目或CodePipeline实例使用这些reppos。我已经在两个帐户上创建了必要的策略和角色,因此缺乏权限应该不是问题。然而,我正在努力使用INT仓库作为PROD CodeBuild项目的源代码。

项目的源块按如下方式配置:

source {
type        = "CODECOMMIT"
location    = "https://git-codecommit.region.amazonaws.com/v1/repos/example-repo"
buildspec   = data.local_file.buildspec_local.content
}
我似乎不明白我该如何在这里进行下去。根据我的理解,我应该以某种方式引用INT帐户中的回购,但据我所知,只有一种方法可以做到这一点,即使用多个具有帐户访问密钥id和密钥的aws提供商块。这种解决方案对我们来说是不可能的,因为我们必须使用公司的SSO工具来生成有效期为12小时的凭据才能使用AWS帐户。我知道有很多关于AWS跨账户访问的问题,但不幸的是,我还没有找到一个可以帮助我的。

欢迎来到AWS Terraform的世界!不知道你已经了解了多少,但你有两个选择。选项1利用AWS跨账户管道。现在我正在用terraform构建这个,但这将被认为是这种类型开发的最佳实践。

如果您只是想从另一个帐户拉入仓库,那么您可以利用Codebuild ssh并将存储库克隆到您的构建作业中。为此,您需要在回购帐户中创建一个ssh用户,我们将其标记为a。您需要ssh用户的用户密钥和公钥。您将在参数存储中创建两个变量,分别称为variable_ssh_key和variable_codecommit_user。

利用这里提供的buildspec,您可以利用git clone来拉取您需要的任何存储库。您唯一需要做的是在帐户B中创建一个存储构建规范并调用其他repo的repo。参考buildspec

相关内容

  • 没有找到相关文章

最新更新