使用共享报告组 - AWS CodeBuild
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

使用共享报告组

报告组共享允许多个 AWS 账户或用户查看报告组、其未过期报告及其报告的测试结果。在此模型中,拥有报告组的账户(拥有者)将与其他账户(使用者)共享该报告组。使用者无法编辑报告组。报告在创建后 30 天过期。

共享报告组的先决条件

要共享报告组,您的 AWS 账户必须拥有该报告组。无法共享已与您共享的报告组。

访问与您共享的报告组的先决条件

要访问共享报告组,使用者的 IAM 角色需要 BatchGetReportGroups 权限。您可以将以下策略附加到其 IAM 角色:

{ "Effect": "Allow", "Resource": [ "*" ], "Action": [ "codebuild:BatchGetReportGroups" ] }

有关更多信息,请参阅为 AWS CodeBuild 使用基于身份的策略

报告组共享与 AWS Resource Access Manager (AWS RAM) 集成,后者是一项服务,使您可以与任何 AWS 账户或通过 AWS Organizations 共享 AWS 资源。通过使用 AWS RAM,您可以通过创建资源共享 来共享您拥有的资源,该共享指定要共享的资源和要与其共享资源的使用者。使用者可以是单个 AWS 账户、AWS Organizations 中的组织部门或 AWS Organizations 中的整个组织。

有关更多信息,请参阅 AWS RAM 用户指南

共享报告组

共享报告组时,将向使用者授予对报告组及其报告的只读访问权限。使用者可以使用 AWS CLI 查看报告组、报告,以及每个报告的测试用例结果。使用者不能执行以下操作:

  • 在 CodeBuild 控制台中查看共享报告组或其报告。

  • 编辑共享报告组。

  • 使用项目中的共享报告组的 ARN 运行报告。指定共享报告组的项目构建将失败。

您可以使用 CodeBuild 控制台将报告组添加到现有资源共享。如果要将报告组添加到新的资源共享,则必须首先在 AWS RAM 控制台中创建资源共享。

要与组织单位或整个组织共享报告组,您必须启用与 AWS Organizations 的共享。有关更多信息,请参阅 用户指南AWS Organizations 中的启用与 共享AWS RAM。

您可以使用 CodeBuild 控制台、AWS RAM 控制台或 AWS CLI 共享您拥有的报告组。

共享您拥有的报告组(CodeBuild 控制台)

  1. Open the AWS CodeBuild console at https://console.amazonaws.cn/codesuite/codebuild/home.

  2. 在导航窗格中,选择 Report groups (报告组)

  3. 选择要共享的项目,然后选择 Share (共享)。有关更多信息,请参阅 https://docs.amazonaws.cn/ram/latest/userguide/getting-started-sharing.html#getting-started-sharing-create 用户指南 中的AWS RAM创建资源共享

共享您拥有的报告组(AWS RAM 控制台)

请参阅 https://docs.amazonaws.cn/ram/latest/userguide/working-with-sharing.html#working-with-sharing-create 中的创建资源共享AWS RAM 用户指南。

共享您拥有的报告组(AWS RAM 命令)

使用 create-resource-share 命令。

共享您拥有的报告组(CodeBuild 命令)

使用 put-resource-policy 命令:

  1. 创建一个名为 policy.json 的文件,并将以下内容复制到该文件中。

    { "Version":"2012-10-17", "Statement":[{ "Effect":"Allow", "Principal":{ "AWS":"consumer-aws-account-id-or-user" }, "Action":[ "codebuild:BatchGetReportGroups", "codebuild:BatchGetReports", "codebuild:ListReportsForReportGroup", "codebuild:DescribeTestCases"], "Resource":"arn-of-report-group-to-share" }] }
  2. 使用报告组 ARN 和标识符更新 policy.json,以便共享该报告组。以下示例向 Alice 授予具有 ARN arn:aws:codebuild:us-west-2:123456789012:report-group/my-report-group 的报告组的只读访问权限,并向 123456789012 标识的 AWS 账户授予根用户身份。

    { "Version":"2012-10-17", "Statement":[{ "Effect":"Allow", "Principal":{ "AWS": [ "arn:aws:iam:123456789012:user/Alice", "123456789012" ] }, "Action":[ "codebuild:BatchGetReportGroups", "codebuild:BatchGetReports", "codebuild:ListReportsForReportGroup", "codebuild:DescribeTestCases"], "Resource":"arn:aws:codebuild:us-west-2:123456789012:report-group/my-report-group" }] }
  3. 运行以下 命令。

    aws codebuild put-resource-policy --resource-arn report-group-arn --policy file://policy.json

取消共享已共享的报告组

取消共享的报告组(包括其报告及其测试用例结果)只能由其拥有者访问。如果取消共享报告组,先前与其共享该报告组的任何 AWS 账户或用户都无法访问该报告组、报告或报告中的测试用例结果。

要取消共享您拥有的已共享报告组,必须从资源共享中将其删除。您可以使用 AWS RAM 控制台或 AWS CLI 执行此操作。

取消共享您拥有的共享报告组(AWS RAM 控制台)

请参阅 https://docs.amazonaws.cn/ram/latest/userguide/working-with-sharing.html#working-with-sharing-update 中的更新资源共享AWS RAM 用户指南。

取消共享您拥有的共享报告组(AWS RAM 命令)

使用 disassociate-resource-share 命令。

取消共享您拥有的报告组(CodeBuild 命令)

运行 delete-resource-policy 命令,并指定要取消共享的报告组的 ARN:

aws codebuild delete-resource-policy --resource-arn report-group-arn

标识共享报告组

拥有者和使用者可以使用 AWS CLI 标识共享报告组。

要标识和获取有关共享报告组及其报告的信息,请使用以下命令:

  • 要查看与您共享的报告组的 ARNs,请运行 list-shared-report-groups:

    aws codebuild list-shared-report-groups
  • 要查看报告组中的报告的 ARNs,请使用报告组 ARN 运行 list-reports-for-report-group:

    aws codebuild list-reports-for-report-group --report-group-arn report-group-arn
  • 要查看有关报告中的测试用例的信息,请使用报告 ARN 运行 describe-test-cases

    aws codebuild describe-test-cases --report-arn report-arn

    输出如下所示:

    { "testCases": [ { "status": "FAILED", "name": "Test case 1", "expired": 1575916770.0, "reportArn": "report-arn", "prefix": "Cucumber tests for agent", "message": "A test message", "durationInNanoSeconds": 1540540, "testRawDataPath": "path-to-output-report-files" }, { "status": "SUCCEEDED", "name": "Test case 2", "expired": 1575916770.0, "reportArn": "report-arn", "prefix": "Cucumber tests for agent", "message": "A test message", "durationInNanoSeconds": 1540540, "testRawDataPath": "path-to-output-report-files" } ] }

共享报告组权限

拥有者的权限

报告组拥有者可以编辑报告组,并在项目中指定该报告组以运行报告。

使用者的权限

报告组使用者可以查看报告组、报告以及报告的测试用例结果。使用者无法编辑报告组或其报告,也无法使用报告组创建报告。