AWS CodeStar Notifications 和 AWS CodeConnections 的身分和存取管理 - 開發人員工具主控台

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

AWS CodeStar Notifications 和 AWS CodeConnections 的身分和存取管理

AWS Identity and Access Management (IAM) 是 AWS 服務 ,可協助管理員安全地控制對 AWS 資源的存取。IAM 管理員可控制誰可以進行身分驗證 (登入) 和授權 (具有許可),以使用 AWS CodeStar Notifications 和 AWS CodeConnections 資源。IAM 是您可以免費使用 AWS 服務 的 。

注意

在新服務字首下建立的資源動作codeconnections可供使用。在新服務字首下建立資源將在資源 ARN codeconnections中使用 。codestar-connections 服務字首的動作和資源仍然可用。在 IAM 政策中指定資源時,服務字首必須符合資源的字首。

目標對象

使用方式 AWS Identity and Access Management (IAM) 會因您的角色而有所不同:

使用身分驗證

身分驗證是您 AWS 使用身分憑證登入 的方式。您必須以 AWS 帳戶根使用者、IAM 使用者或擔任 IAM 角色身分進行身分驗證。

您可以使用身分來源的登入資料,例如 AWS IAM Identity Center (IAM Identity Center)、單一登入身分驗證或 Google/Facebook 登入資料,以聯合身分的形式登入。如需登入的詳細資訊,請參閱AWS 登入 《 使用者指南》中的如何登入您的 AWS 帳戶

對於程式設計存取, AWS 提供 SDK 和 CLI 以密碼編譯方式簽署請求。如需詳細資訊,請參閱《IAM 使用者指南》中的 AWS API 請求的簽章版本 4

AWS 帳戶根使用者

建立 時 AWS 帳戶,您會從一個名為 AWS 帳戶 theroot 使用者的登入身分開始,該身分可完整存取所有 AWS 服務 和資源。強烈建議您不要將根使用者用於日常任務。如需需要根使用者憑證的任務,請參閱《IAM 使用者指南》中的需要根使用者憑證的任務。

IAM 使用者和群組

IAM 使用者是具有單一人員或應用程式特定許可的身分。我們建議您使用臨時登入資料,而非具有長期登入資料的 IAM 使用者。如需詳細資訊,請參閱《IAM 使用者指南》中的要求人類使用者使用聯合身分提供者來 AWS 使用臨時憑證存取

IAM 群組會指定 IAM 使用者的集合,讓大量使用者更容易管理許可。如需詳細資訊,請參閱《IAM 使用者指南》中的 IAM 使用者使用案例

IAM 角色

IAM 角色是具有特定許可的身分,可提供臨時登入資料。您可以透過從使用者切換到 IAM 角色 (主控台) 或呼叫 AWS CLI 或 AWS API 操作來擔任角色。如需詳細資訊,請參閱《IAM 使用者指南》中的擔任角色的方法

IAM 角色適用於聯合身分使用者存取、臨時 IAM 使用者許可、跨帳戶存取、跨服務存取,以及在 Amazon EC2 上執行的應用程式。如需詳細資訊,請參閱 IAM 使用者指南中的 IAM 中的快帳戶資源存取

使用政策管理存取權

您可以透過建立政策並將其連接到身分或資源 AWS 來控制 AWS 中的存取。政策定義與身分或資源相關聯的許可。當委託人提出請求時 AWS , 會評估這些政策。大多數政策會以 JSON 文件 AWS 的形式存放在 中。如需 JSON 政策文件的詳細資訊,請參閱《IAM 使用者指南》中的 JSON 政策概觀

管理員使用 政策,透過定義哪些委託人可以對哪些資源以及在哪些條件下執行動作,指定誰可以存取哪些資源。

預設情況下,使用者和角色沒有許可。IAM 管理員會建立 IAM 政策並將其新增至角色,然後使用者可以擔任該角色。無論用於執行操作的方法為何,IAM 政策都會定義許可。

身分型政策

身分型政策是您連接到身分 (使用者、群組或角色) 的 JSON 許可政策文件。這些政策可控制身分可執行的動作、資源,以及條件。如需了解如何建立身分型政策,請參閱 IAM 使用者指南中的透過客戶管理政策定義自訂 IAM 許可

身分型政策可以是內嵌政策 (直接內嵌至單一身分) 或受管政策 (連接至多個身分的獨立政策)。若要了解如何在受管和內嵌政策之間進行選擇,請參閱《IAM 使用者指南》中的在受管政策和內嵌政策之間進行選擇

AWS CodeConnections 許可參考

下表列出每個 AWS CodeConnections API 操作、您可以授予許可的對應動作,以及用於授予許可的資源 ARN 格式。 AWS CodeConnections APIs 會根據該 API 允許的動作範圍分組為資料表。撰寫可連接至 IAM 身分的許可政策 (身分型政策) 時,請參考這些表格。

當您建立許可政策時,您需要在政策的 Action 欄位中指定動作。您需要在政策的 Resource 欄位中指定資源值做為 ARN,可包含或不含萬用字元 (*)。

若要在連線政策中表達條件,請使用此處所述和 條件索引鍵 中列出的條件索引鍵。您也可以使用 AWS全局條件索引鍵。如需 AWS全系列金鑰的完整清單,請參閱《IAM 使用者指南》中的可用金鑰

若要指定動作,請使用 codeconnections 字首,後面接著 API 操作名稱 (例如 codeconnections:ListConnectionscodeconnections:CreateConnection)。

使用萬用字元

若要指定多個動作或資源,請在 ARN 中使用萬用字元 (*)。例如, codeconnections:* 指定 all AWS CodeConnections 動作,並codeconnections:Get*指定以字詞 開頭的所有 AWS CodeConnections 動作Get。以下範例授予對所有以 MyConnection 為名稱開頭之資源的存取權。

arn:aws:codeconnections:us-west-2:account-ID:connection/*

您只能針對下表列出的連線資源使用萬用字元。您不能對 regionaccount-id 資源使用萬用字元。如需萬用字元的詳細資訊,請參閱《IAM 使用者指南》中的 IAM 識別符

管理連線的許可

指定使用 或 AWS CLI SDK 來檢視、建立或刪除連線的角色或使用者應具有僅限下列的許可。

注意

只具有下列許可,並無法在主控台中完成或使用連線。您需要在 完成連線的許可 中新增許可。

codeconnections:CreateConnection codeconnections:DeleteConnection codeconnections:GetConnection codeconnections:ListConnections

使用捲軸查看資料表的其餘部分。

AWS CodeConnections 管理連線所需的許可
AWS CodeConnections 動作 所需的許可 資源

CreateConnection

codeconnections:CreateConnection

使用 CLI 或主控台來建立連線時需要。

arn:aws:codeconnections:regionaccount-id:connection/connection-id

DeleteConnection

codeconnections:DeleteConnection

使用 CLI 或主控台來刪除連線時需要。

arn:aws:codeconnections:regionaccount-id:connection/connection-id

GetConnection

codeconnections:GetConnection

需要使用 CLI 或主控台來檢視有關連線的詳細資訊。

arn:aws:codeconnections:regionaccount-id:connection/connection-id

ListConnections

codeconnections:ListConnections

使用 CLI 或主控台列出帳戶中的所有連線時需要。

arn:aws:codeconnections:regionaccount-id:connection/connection-id

這些操作支援下列條件金鑰:

動作 條件索引鍵

codeconnections:CreateConnection

codeconnections:ProviderType

codeconnections:DeleteConnection N/A
codeconnections:GetConnection N/A
codeconnections:ListConnections codeconnections:ProviderTypeFilter

管理主機的許可

指定使用 或 AWS CLI SDK 來檢視、建立或刪除主機的角色或使用者應具有僅限下列的許可。

注意

只具有下列許可,並無法在主機中完成或使用主機。您需要在 設定主機的許可 中新增許可。

codeconnections:CreateHost codeconnections:DeleteHost codeconnections:GetHost codeconnections:ListHosts

使用捲軸查看資料表的其餘部分。

AWS CodeConnections 管理主機所需的許可
AWS CodeConnections 動作 所需的許可 資源

CreateHost

codeconnections:CreateHost

使用 CLI 或主控台來建立主機時需要。

arn:aws:codeconnections:regionaccount-id:host/host-id

DeleteHost

codeconnections:DeleteHost

使用 CLI 或主控台來刪除主機時需要。

codeconnections:regionaccount-id:host/host-id

GetHost

codeconnections:GetHost

使用 CLI 或主控台來檢視有關主機的詳細資訊時需要。

arn:aws:codeconnections:regionaccount-id:host/host-id

ListHosts

codeconnections:ListHosts

使用 CLI 或主控台列出帳戶中的所有主機時需要。

arn:aws:codeconnections:regionaccount-id:host/host-id

這些操作支援下列條件金鑰:

動作 條件索引鍵

codeconnections:CreateHost

codeconnections:ProviderType

codeconnections:VpcId

codeconnections:DeleteHost N/A
codeconnections:GetHost N/A
codeconnections:ListHosts codeconnections:ProviderTypeFilter

如需使用 VpcId 條件金鑰的範例政策,請參閱 範例:使用 VpcId 內容金鑰限制主機 VPC 許可

完成連線的許可

指定要管理在主控台中連線的角色或使用者,應具備完成主控台中的連線及建立安裝所需的許可,包括授權供應商進行交握,以及建立供連線使用的安裝。除了上述許可之外,也請使用下列許可。

執行以瀏覽器為基礎的交握時,主控台會使用下列 IAM 操作。ListInstallationTargetsGetInstallationUrlStartOAuthHandshakeUpdateConnectionInstallationGetIndividualAccessToken 是 IAM 政策許可。不是 API 動作。

codeconnections:GetIndividualAccessToken codeconnections:GetInstallationUrl codeconnections:ListInstallationTargets codeconnections:StartOAuthHandshake codeconnections:UpdateConnectionInstallation

以此為基礎,需要下列許可才能在主控台中使用、建立、更新或刪除連線。

codeconnections:CreateConnection codeconnections:DeleteConnection codeconnections:GetConnection codeconnections:ListConnections codeconnections:UseConnection codeconnections:ListInstallationTargets codeconnections:GetInstallationUrl codeconnections:StartOAuthHandshake codeconnections:UpdateConnectionInstallation codeconnections:GetIndividualAccessToken

使用捲軸查看資料表的其餘部分。

AWS CodeConnections 完成連線所需的許可
AWS CodeConnections 動作 所需的許可 資源

GetIndividualAccessToken

codeconnections:GetIndividualAccessToken

使用主控台完成連線時需要。這只是 IAM 政策許可,不是 API 動作。

arn:aws:codeconnections:regionaccount-id:connection/connection-id

GetInstallationUrl

codeconnections:GetInstallationUrl

使用主控台完成連線時需要。這只是 IAM 政策許可,不是 API 動作。

arn:aws:codeconnections:regionaccount-id:connection/connection-id

ListInstallationTargets

codeconnections:ListInstallationTargets

使用主控台完成連線時需要。這只是 IAM 政策許可,不是 API 動作。

arn:aws:codeconnections:regionaccount-id:connection/connection-id

StartOAuthHandshake

codeconnections:StartOAuthHandshake

使用主控台完成連線時需要。這只是 IAM 政策許可,不是 API 動作。

arn:aws:codeconnections:regionaccount-id:connection/connection-id

UpdateConnectionInstallation

codeconnections:UpdateConnectionInstallation

使用主控台完成連線時需要。這只是 IAM 政策許可,不是 API 動作。

arn:aws:codeconnections:regionaccount-id:connection/connection-id

這些作業支援下列條件索引鍵。

動作 條件索引鍵
codeconnections:GetIndividualAccessToken codeconnections:ProviderType
codeconnections:GetInstallationUrl codeconnections:ProviderType

codeconnections:ListInstallationTargets

N/A

codeconnections:StartOAuthHandshake codeconnections:ProviderType
codeconnections:UpdateConnectionInstallation codeconnections:InstallationId

設定主機的許可

指定管理在主控台中連線的角色或使用者,應具備在主控台中設定主機所需的許可,包括授權供應商進行交握,以及安裝主機應用程式。除了上述主機許可之外,也請使用下列許可。

執行瀏覽器式主機註冊時,主控台會使用下列 IAM 作業。RegisterAppCodeStartAppRegistrationHandshake 是 IAM 政策許可。不是 API 動作。

codeconnections:RegisterAppCode codeconnections:StartAppRegistrationHandshake

以此為基礎,需要下列許可才能在主控台中使用、建立、更新或刪除需要主機的連線 (例如已安裝的供應商類型)。

codeconnections:CreateConnection codeconnections:DeleteConnection codeconnections:GetConnection codeconnections:ListConnections codeconnections:UseConnection codeconnections:ListInstallationTargets codeconnections:GetInstallationUrl codeconnections:StartOAuthHandshake codeconnections:UpdateConnectionInstallation codeconnections:GetIndividualAccessToken codeconnections:RegisterAppCode codeconnections:StartAppRegistrationHandshake

使用捲軸查看資料表的其餘部分。

AWS CodeConnections 完成主機設定所需的許可
連線動作 所需的許可 資源

RegisterAppCode

codeconnections:RegisterAppCode

使用主控台來完成主機設定時需要。這只是 IAM 政策許可,不是 API 動作。

arn:aws:codeconnections:regionaccount-id:host/host-id

StartAppRegistrationHandshake

codeconnections:StartAppRegistrationHandshake

使用主控台來完成主機設定時需要。這只是 IAM 政策許可,不是 API 動作。

arn:aws:codeconnections:regionaccount-id:host/host-id

這些作業支援下列條件索引鍵。

將連線傳遞至服務

將連線傳遞至服務時 (例如,在管道定義中提供連線 ARN 以建立或更新管線),使用者必須具有 codeconnections:PassConnection 許可。

使用捲軸查看資料表的其餘部分。

AWS CodeConnections 傳遞連線所需的許可
AWS CodeConnections 動作 所需的許可 資源

PassConnection

codeconnections:PassConnection

將連線傳遞到服務時需要。

arn:aws:codeconnections:regionaccount-id:connection/connection-id

此操作也支援下列條件金鑰:

  • codeconnections:PassedToService

支援的條件金鑰值
Key 有效動作供應商

codeconnections:PassedToService

  • codeguru-reviewer

  • codepipeline.amazonaws.com

  • proton.amazonaws.com

使用連線

當 CodePipeline 之類的服務使用連線時,服務角色必須具有特定連線的 codeconnections:UseConnection 許可。

若要在主控台中管理連線,使用者政策必須具有 codeconnections:UseConnection 許可。

使用捲軸查看資料表的其餘部分。

AWS CodeConnections 使用連線所需的動作
AWS CodeConnections 動作 所需的許可 資源

UseConnection

codeconnections:UseConnection

使用連線時需要。

arn:aws:codeconnections:regionaccount-id:connection/connection-id

此操作也支援下列條件金鑰:

  • codeconnections:BranchName

  • codeconnections:FullRepositoryId

  • codeconnections:OwnerId

  • codeconnections:ProviderAction

  • codeconnections:ProviderPermissionsRequired

  • codeconnections:RepositoryName

支援的條件金鑰值
Key 有效動作供應商

codeconnections:FullRepositoryId

儲存庫的使用者名稱和儲存庫名稱,例如 my-owner/my-repository。僅當使用連線來存取特定儲存庫時才支援。

codeconnections:ProviderPermissionsRequired

read_only 或 read_write

codeconnections:ProviderAction

GetBranch, ListRepositories, ListOwners, ListBranches, StartUploadArchiveToS3, GitPush, GitPull, GetUploadArchiveToS3Status, CreatePullRequestDiffComment, GetPullRequest, ListBranchCommits, ListCommitFiles, ListPullRequestComments, ListPullRequestCommits.

如需相關資訊,請參閱下一節。

某些功能的必要條件金鑰可能隨著時間而變更。除非您的存取控制需求需要不同的許可,否則建議您使用 codeconnections:UseConnection 來控制對連線的存取。

支援的 ProviderAction 存取權類型

當 AWS 服務使用連線時,會導致對原始碼提供者進行 API 呼叫。例如,服務可能呼叫 https://api.bitbucket.org/2.0/repositories/username API 來列出 Bitbucket 連線的儲存庫。

ProviderAction 條件金鑰可讓您限制供應商上可呼叫的 API。因為 API 路徑可能是動態產生,而且路徑隨不同供應商而不同,因此 ProviderAction 值對應至抽象動作名稱,而不是 API 的 URL。不論連線的供應商類型為何,這可讓您撰寫具有相同效果的政策。

以下是針對每個支援的 ProviderAction 值授予的存取類型。以下說明 IAM 政策許可。不是 API 動作。

使用捲軸查看資料表的其餘部分。

AWS CodeConnections 支援的 存取類型 ProviderAction
AWS CodeConnections 許可 所需的許可 資源

GetBranch

codeconnections:GetBranch

存取分支的相關資訊 (例如該分支的最新遞交) 時需要。

arn:aws:codeconnections:regionaccount-id:connection/connection-id

ListRepositories

codeconnections:ListRepositories

存取屬於擁有者的公有和私有儲存庫清單 (包括這些儲存庫的詳細資訊) 時需要。

arn:aws:codeconnections:regionaccount-id:connection/connection-id

ListOwners

codeconnections:ListOwners

存取連線可存取的擁有者清單時需要。

arn:aws:codeconnections:regionaccount-id:connection/connection-id

ListBranches

codeconnections:ListBranches

存取特定儲存庫上存在的分支清單時需要。

arn:aws:codeconnections:regionaccount-id:connection/connection-id

StartUploadArchiveToS3

codeconnections:StartUploadArchiveToS3

讀取原始碼並上傳至 Amazon S3 時需要。

arn:aws:codeconnections:regionaccount-id:connection/connection-id

GitPush

codeconnections:GitPush

使用 Git 寫入儲存庫時需要。

arn:aws:codeconnections:regionaccount-id:connection/connection-id

GitPull

codeconnections:GitPull

使用 Git 讀取儲存庫時需要。

arn:aws:codeconnections:regionaccount-id:connection/connection-id

GetUploadArchiveToS3Status

codeconnections:GetUploadArchiveToS3Status

存取由 StartUploadArchiveToS3 起始的上傳狀態 (包括任何錯誤訊息) 時需要。

arn:aws:codeconnections:regionaccount-id:connection/connection-id

CreatePullRequestDiffComment

codeconnections:CreatePullRequestDiffComment

存取提取請求上的註解時需要。

arn:aws:codeconnections:regionaccount-id:connection/connection-id

GetPullRequest

codeconnections:GetPullRequest

檢視儲存庫的提取請求時需要。

arn:aws:codeconnections:regionaccount-id:connection/connection-id

ListBranchCommits

codeconnections:ListBranchCommits

儲存庫分支的遞交清單時需要。

arn:aws:codeconnections:regionaccount-id:connection/connection-id

ListCommitFiles

codeconnections:ListCommitFiles

檢視遞交的檔案清單時需要。

arn:aws:codeconnections:regionaccount-id:connection/connection-id

ListPullRequestComments

codeconnections:ListPullRequestComments

檢視提取請求的註解清單時需要。

arn:aws:codeconnections:regionaccount-id:connection/connection-id

ListPullRequestCommits

codeconnections:ListPullRequestCommits

檢視提取請求的遞交清單時需要。

arn:aws:codeconnections:regionaccount-id:connection/connection-id

標記連線資源的支援許可

標記連線資源時,會使用下列 IAM 操作。

codeconnections:ListTagsForResource codeconnections:TagResource codeconnections:UntagResource

使用捲軸查看資料表的其餘部分。

AWS CodeConnections 標記連線資源所需的動作
AWS CodeConnections 動作 所需的許可 資源

ListTagsForResource

codeconnections:ListTagsForResource

檢視與連線資源關聯之標籤清單時需要。

arn:aws:codeconnections:regionaccount-id:connection/connection-id

,

arn:aws:codeconnections:regionaccount-id:host/host-id

TagResource

codeconnections:TagResource

標記連線資源時需要。

arn:aws:codeconnections:regionaccount-id:connection/connection-id

,

arn:aws:codeconnections:regionaccount-id:host/host-id

UntagResource

codeconnections:UntagResource

從連線資源中移除標籤時需要。

arn:aws:codeconnections:regionaccount-id:connection/connection-id

,

arn:aws:codeconnections:regionaccount-id:host/host-id

將連線傳遞到儲存庫連結

在同步組態中提供儲存庫連結時,使用者必須擁有存放庫連結 ARN/資源的 codeconnections:PassRepository 許可。

使用捲軸查看資料表的其餘部分。

AWS CodeConnections 傳遞連線所需的許可
AWS CodeConnections 動作 所需的許可 資源

PassRepository

codeconnections:PassRepository

需要將儲存庫連結傳遞至同步組態。

arn:aws:codeconnections:regionaccount-id:repository-link/repository-link-id

此操作也支援下列條件金鑰:

  • codeconnections:PassedToService

支援的條件金鑰值
Key 有效動作供應商

codeconnections:PassedToService

  • cloudformation.sync.codeconnections.amazonaws.com

儲存庫連結的可支援條件金鑰

下列條件金鑰支援儲存庫連結和同步組態資源的操作:

  • codeconnections:Branch

    透過請求中傳遞的分支名稱來篩選存取。

條件金鑰的可支援動作
Key 有效值

codeconnections:Branch

此條件金鑰支援下列動作:
  • CreateSyncConfiguration

  • UpdateSyncConfiguration

  • GetRepositorySyncStatus

連線共用的支援許可

共用連線時,會使用下列 IAM 操作。

codeconnections:GetResourcePolicy

使用捲軸查看資料表的其餘部分。

AWS CodeConnections 共用連線所需的動作
AWS CodeConnections 動作 所需的許可 資源

GetResourcePolicy

codeconnections:GetResourcePolicy

存取資源政策的相關資訊時需要。

arn:aws:codeconnections:regionaccount-id:connection/connection-id

如需連線共用的詳細資訊,請參閱 與 共用連線 AWS 帳戶

在主控台中使用通知和連線

通知體驗內建於 CodeBuild、CodeCommit、CodeDeploy 和 CodePipeline 主控台中,以及開發人員主控台的 Settings (設定) 導覽列本身。若要存取主控台中的通知,您必須套用這些服務相關的其中一個受管政策,或者您必須擁有至少一組許可。這些許可必須允許您列出和檢視 AWS 帳戶中 AWS CodeStar Notifications 和 AWS CodeConnections 資源的詳細資訊。如果您建立比最基本必要許可更嚴格的身分型政策,則對於具有該政策的實體 (IAM 使用者或角色) 而言,主控台就無法如預期運作。如需授予對這些主控台 AWS CodeBuild的存取權 AWS CodeCommit AWS CodeDeploy,以及 AWS CodePipeline包括這些主控台的存取權的詳細資訊,請參閱下列主題:

AWS CodeStar Notifications 沒有任何 AWS 受管政策。若要提供通知功能的存取權,您必須針對上述其中一項服務套用其中一項受管政策,或者,您必須建立具有您要授予使用者或實體之許可層級的政策,然後將這些政策連接到需要這些許可的使用者、群組或角色。如需更多資訊和範例,請參閱下列內容:

AWS CodeConnections 沒有任何 AWS 受管政策。您可以針對存取權使用許可和許可組合,如 完成連線的許可 中詳述的許可權限。

如需詳細資訊,請參閱下列內容:

對於僅對 AWS CLI 或 AWS API 進行呼叫的使用者,您不需要允許主控台許可。反之,只需允許存取符合您嘗試執行之 API 操作的動作就可以了。

允許使用者檢視他們自己的許可

此範例會示範如何建立政策,允許 IAM 使用者檢視附加到他們使用者身分的內嵌及受管政策。此政策包含在主控台或使用 或 AWS CLI AWS API 以程式設計方式完成此動作的許可。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }