amazon-web-services - AWS codebuild 列出其他帐户的 s3 存储桶

标签 amazon-web-services amazon-s3 aws-codebuild

enter image description here我的代码构建位于 Account A 和 s3 bucket 位于 Account B 上。我尝试在 Account B 上设置受信任的 IAM STS 角色,并在 Account A 上设置策略以包含 Account B IAM 角色,附上此策略到我的代码构建服务角色。但是,我的代码构建仍然显示了 s3 上的存储桶。我在这里做错了或配置错了吗?

对账户 B 具有信任关系的角色

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::Account:root"
      },
      "Action": "sts:AssumeRole",
      "Condition": {}
    }
  ]

账户 A 的政策

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Resource": "arn:aws:iam::Account B:role/testcli"
        }
    ]
}

CodeBuild BuildSpec.yml

version: 0.2

env:
  variables:
    TF_VERSION: "0.12.28"

phases:
  install:
    commands:
#       install required binary
      - echo test
  pre_build:
    commands:
      - echo print s3 buckets
      - aws s3 ls

  post_build:
    commands:
      - echo test1

最佳答案

假设您的 CodeBuild (CB) 具有 sts:AssumeRole 的权限,在您的 buildspec.yml 中,您必须显式承担角色Acc B.

两种方法可以做到这一点。

  • “手动”调用 assume-role在您的 buildspec.yml 中。该调用将返回一组临时凭证。获得的凭证随后可用于从您的 CB 在 Acc B 中执行 AWS CLI 命令。

  • 如图所示设置 AWS CLI 凭证文件 herehere在您的 CB 容器中担任角色。

在这两种情况下,CB 服务角色都需要 sts:AssumeRole 权限。

关于amazon-web-services - AWS codebuild 列出其他帐户的 s3 存储桶,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63699825/

相关文章:

amazon-web-services - 如何在我的 CF 模板中设置 Glue Crawler RecrawlPolicy

amazon-web-services - AWS SAM : Shared files across Lambda functions

java - Amazon s3 只为一个桶返回 1000 个条目,而为另一个桶返回所有条目(使用 java sdk)?

amazon-web-services - Codepipline 构建步骤的 AWS Cloudformation 环境变量

amazon-web-services - 使用 HTTPS 终端节点时从 Amazon SNS 获取 "SSLPeerUnverifiedException"

c# - 如何使用 C# 轻松上传文件到 Amazon S3

php - 使用 aws sdk 为 php 2 生成预签名对象 url

ruby-on-rails - 多个服务器上 Rails 中奇怪的 ActiveRecord 时区行为

amazon-web-services - Terraform:传递 AWS 系统管理器参数存储变量时无效的 Terraform AWS 提供程序凭证

amazon-web-services - NoSuchKey : The specified key does not exist AWS S3 Codebuild