管理 AWS CodeBuild 資源的存取許可概觀 - AWS CodeBuild

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

管理 AWS CodeBuild 資源的存取許可概觀

每個 AWS 資源都由 AWS 帳戶擁有,而建立或存取資源的許可受許可政策約束。帳戶管理員可以將許可政策連接至身分 IAM (即使用者、群組和角色)。

注意

帳戶管理員 (或管理員使用者) 是具有管理員權限的使用者。如需詳細資訊,請參閱 IAM 使用者指南 中的IAM最佳實務

當您授予許可時,您要決定取得許可的人員、其可存取的資源、以及可對這些資源執行的動作。

AWS CodeBuild 資源和操作

在 中 AWS CodeBuild,主要資源是建置專案。在政策中,您可以使用 Amazon Resource Name (ARN) 來識別政策適用的資源。建置也是 資源,並與其ARNs相關聯。如需詳細資訊,請參閱 中的 Amazon Resource Names (ARN) AWS 和服務命名空間Amazon Web Services 一般參考

資源類型 ARN 格式
建置專案

arn:aws:codebuild:region-ID:account-ID:project/project-name

組建

arn:aws:codebuild:region-ID:account-ID:build/build-ID

報告群組 arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name
報告 arn:aws:codebuild:region-ID:account-ID:report/report-ID
機群

arn:aws:codebuild:region-ID:account-ID:fleet/fleet-ID

所有 CodeBuild 資源

arn:aws:codebuild:*

指定 AWS 區域中指定帳戶擁有的所有 CodeBuild 資源

arn:aws:codebuild:region-ID:account-ID:*

重要

使用預留容量功能時,相同帳戶中的其他專案可以存取機群執行個體上快取的資料,包括來源檔案、Docker 層和 buildspec 中指定的快取目錄。這是透過設計,並允許相同帳戶中的專案共用機群執行個體。

注意

大多數 AWS 服務將冒號 (:) 或正斜線 (/) 視為 中的相同字元ARNs。不過, CodeBuild 會在資源模式和規則中使用完全相符的項目。建立事件模式時,請務必使用正確的字元,以便它們與資源中的ARN語法相符。

例如,您可以指定特定的建置專案 (myBuildProject),ARN如下所示:

"Resource": "arn:aws:codebuild:us-east-2:123456789012:project/myBuildProject"

若要指定所有資源,或API動作不支援 ARNs,請使用Resource元素中的萬用字元 (*),如下所示:

"Resource": "*"

有些 CodeBuild API動作接受多個資源 (例如 BatchGetProjects)。若要在單一陳述式中指定多個資源,ARNs請以逗號分隔它們,如下所示:

"Resource": [ "arn:aws:codebuild:us-east-2:123456789012:project/myBuildProject", "arn:aws:codebuild:us-east-2:123456789012:project/myOtherBuildProject" ]

CodeBuild 提供一組操作來使用 CodeBuild 資源。如需清單,請參閱AWS CodeBuild 許可參考

了解資源所有權

AWS 帳戶擁有在帳戶中建立的資源,無論誰建立資源。具體而言,資源擁有者是驗證資源建立請求的主要實體 AWS (即根帳戶、使用者或IAM角色) 的帳戶。下列範例說明其如何運作:

  • 如果您使用 AWS 帳戶的根帳戶憑證來建立規則, AWS 您的帳戶就是 CodeBuild 資源的擁有者。

  • 如果您在 AWS 帳戶中建立使用者,並將建立 CodeBuild 資源的許可授予該使用者,則使用者可以建立 CodeBuild 資源。但是,使用者所屬 AWS 的帳戶擁有資源 CodeBuild。

  • 如果您在 AWS 帳戶中建立具有建立 CodeBuild 資源許可IAM的角色,則任何可以擔任該角色的人都可以建立 CodeBuild資源。您角色所屬 AWS 的帳戶擁有 資源 CodeBuild。

管理資源存取

許可政策說明誰可以存取哪些資源。

注意

本節討論在 IAM中使用 AWS CodeBuild。它不會提供有關 IAM服務的詳細資訊。如需完整IAM文件,請參閱 使用者指南 中的什麼是 IAM?IAM 如需IAM政策語法和描述的相關資訊,請參閱 IAM 使用者指南 中的AWS IAM政策參考

連接到IAM身分的政策稱為身分型政策 (IAM 政策)。附加至資源的政策稱為資源型政策。 CodeBuild 支援特定僅供讀取的身分型政策和資源型政策,APIs以跨帳戶資源共用為目的。

安全存取 S3 儲存貯體

我們強烈建議您在IAM角色中包含下列許可,以確認與您 CodeBuild 專案相關聯的 S3 儲存貯體為您自己或您信任的人所擁有。這些許可不包含在 AWS 受管政策和角色中。您必須自行新增這些許可。

  • s3:GetBucketAcl

  • s3:GetBucketLocation

如果專案使用的 S3 儲存貯體擁有者變更,您必須驗證您仍然擁有儲存貯體,如果沒有,則更新IAM角色中的許可。如需詳細資訊,請參閱 允許使用者與 互動 CodeBuild允許 AWS 與其他 服務 CodeBuild 互動

指定政策元素:動作、效果和委託人

對於每個 AWS CodeBuild 資源,服務會定義一組API操作。若要授予這些API操作的許可, CodeBuild 會定義一組您可以在政策中指定的動作。某些API操作可能需要多個動作的許可,才能執行API操作。如需詳細資訊,請參閱 AWS CodeBuild 資源和操作AWS CodeBuild 許可參考

以下是基本的政策元素:

  • 資源 – 您可以使用 Amazon Resource Name (ARN) 來識別政策適用的資源。

  • 動作 – 您可以使用動作關鍵字來識別您要允許或拒絕的資源操作。例如,codebuild:CreateProject 許可授予使用者執行 CreateProject 操作的許可。

  • 效果 – 當使用者請求動作時,您可以指定允許或拒絕的效果。如果您未明確授予存取 (允許) 資源,則隱含地拒絕存取。您也可以明確拒絕存取資源。您可以明確拒絕以確定即使其他政策授予存取權,使用者仍無法存取資源。

  • 主體 – 在身分型政策 (IAM 政策) 中,附加政策的使用者是隱含主體。對於以資源為基礎的政策,您可以指定希望獲得許可的使用者、帳戶、服務或其他實體。

若要進一步了解IAM政策語法和描述,請參閱 IAM 使用者指南 中的AWS IAM政策參考

如需顯示所有 CodeBuild API動作及其套用的資源的資料表,請參閱 AWS CodeBuild 許可參考