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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用共享报告组

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

共享报告组的先决条件

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

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

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

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

有关更多信息,请参阅将基于身份的策略用于 Amazon CodeBuild

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

有关更多信息,请参阅《Amazon RAM 用户指南》。

共享报告组

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

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

  • 编辑共享报告组。

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

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

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

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

共享您拥有的报告组(CodeBuild 控制台)
  1. https://console.aws.amazon.com/codesuite/codebuild/home 打开 Amazon CodeBuild 控制台。

  2. 在导航窗格中,选择报告组

  3. 选择要共享的项目,然后选择共享。有关更多信息,请参阅《Amazon RAM 用户指南》中的创建资源共享

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

请参阅《Amazon RAM 用户指南》中的创建资源共享

共享您拥有的报告组(Amazon 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 标识的 Amazon 账户授予根用户身份。

    { "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

取消共享已共享的报告组

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

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

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

请参阅《Amazon RAM 用户指南》中的更新资源共享

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

使用 disassociate-resource-share 命令。

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

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

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

标识共享报告组

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

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

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

    aws codebuild list-shared-report-groups
  • 要查看报告组中的报告的 ARN,请使用报告组 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" } ] }

共享报告组权限

拥有者的权限

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

使用者的权限

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