本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Identity and Access Management 和 Amazon CodeCatalyst
在 Amazon 中 CodeCatalyst,您可以建立並使用 AWS 產生器 ID 來登入和存取您的空間和專案。 AWS 產生器 ID 不是 AWS Identity and Access Management (IAM) 中的身分,也不存在於 AWS 帳戶. 但是, CodeCatalyst 在驗證用於計費目的的空間時,以及連接到以創建和使用其中的資源時,與 IAM 集成 AWS 帳戶。 AWS 帳戶
AWS Identity and Access Management (IAM) 可協助管理員安全地控制 AWS 資源存取權。 AWS 服務 IAM 管理員可以控制誰能「完成身分驗證」(已登入) 和「獲得授權」(具有許可) 而得以使用資源。IAM 是您可以使用的 AWS 服務 ,無需額外付費。
當您在 Amazon 中建立空間時 CodeCatalyst,您必須連接 AWS 帳戶 為您的空間的帳單帳戶。您必須在中具有管理員權限 AWS 帳戶 才能驗證 CodeCatalyst 空間,或具有權限。您也可以選擇為您的空間新增 IAM 角色, CodeCatalyst 以便在已連線的空間中建立和存取資源 AWS 帳戶。這稱為服務角色。您可以選擇建立與多個帳戶的連線, AWS 帳戶 並為 CodeCatalyst 每個帳戶建立服務角色。
注意
的帳單 CodeCatalyst 會在 AWS 帳戶 指定為帳單帳戶中進行。不過,如果您在該角色 AWS 帳戶 或任何其他連線中建立 CodeCatalyst 服務角色 AWS 帳戶,則該 CodeCatalyst 服務角色所建立和使用的資源將以該連線方式計費 AWS 帳戶。如需詳細資訊,請參閱 Amazon 管理 CodeCatalyst 員指南中的管理帳單。
主題
IAM 中以身分識別為基礎的政策
以身分識別為基礎的原則是 JSON 權限原則文件,您可以附加至身分識別。該身分可以是使用者、使用者群組或角色。這些政策可控制身分在何種條件下能對哪些資源執行哪些動作。若要了解如何建立身分類型政策,請參閱《IAM 使用者指南》中的建立 IAM 政策。
使用 IAM 身分型政策,您可以指定允許或拒絕的動作和資源,以及在何種條件下允許或拒絕動作。您無法在身分型政策中指定主體,因為這會套用至連接的使用者或角色。如要了解您在 JSON 政策中使用的所有元素,請參閱《IAM 使用者指南》中的 IAM JSON 政策元素參考。
CodeCatalyst 的身分型政策範例
若要檢視以 CodeCatalyst 身分為基礎的原則範例,請參閱。連線的身分識別原則範例 CodeCatalyst
IAM 中的政策動作
管理員可以使用 AWS JSON 政策來指定誰可以存取哪些內容。也就是說,哪些主體可以在什麼樣的資源,以及在什麼條件下執行哪些操作。
JSON 政策的 Action
元素描述您可以用來允許或拒絕政策中存取的動作。原則動作通常與關聯的 AWS API 作業具有相同的名稱。有一些例外狀況,例如沒有相符的 API 操作的僅限許可動作。也有一些作業需要政策中的多個動作。這些額外的動作稱為相依動作。
若要在單一陳述式中指定多個動作,請用逗號分隔。
"Action": [ "prefix:
action1
", "prefix:action2
" ]
IAM 中的政策資源
管理員可以使用 AWS JSON 政策來指定誰可以存取哪些內容。也就是說,哪些主體可以在什麼樣的資源,以及在什麼條件下執行哪些操作。
Resource
JSON 政策元素可指定要套用動作的物件。陳述式必須包含 Resource
或 NotResource
元素。最佳實務是使用其 Amazon Resource Name (ARN) 來指定資源。您可以針對支援特定資源類型的動作 (稱為資源層級許可) 來這麼做。
對於不支援資源層級許可的動作 (例如列出操作),請使用萬用字元 (*) 來表示陳述式適用於所有資源。
"Resource": "*"
IAM 中的政策條件金鑰
管理員可以使用 AWS JSON 政策來指定誰可以存取哪些內容。也就是說,哪些主體可以在什麼樣的資源,以及在什麼條件下執行哪些操作。
Condition
元素 (或 Condition
區塊) 可讓您指定使陳述式生效的條件。Condition
元素是選用項目。您可以建立使用條件運算子的條件運算式 (例如等於或小於),來比對政策中的條件和請求中的值。
若您在陳述式中指定多個 Condition
元素,或是在單一 Condition
元素中指定多個索引鍵, AWS 會使用邏輯 AND
操作評估他們。若您為單一條件索引鍵指定多個值, AWS
會使用邏輯 OR
操作評估條件。必須符合所有條件,才會授與陳述式的許可。
您也可以在指定條件時使用預留位置變數。如需更多資訊,請參閱 IAM 使用者指南中的 IAM 政策元素:變數和標籤。
AWS 支援全域條件金鑰和服務特定條件金鑰。若要查看 AWS 全域條件金鑰,請參閱 IAM 使用者指南中的 AWS 全域條件內容金鑰。
連線的身分識別原則範例 CodeCatalyst
在中 CodeCatalyst,需 AWS 帳戶 要管理空間的帳單以及存取專案工作流程中的資源。帳戶連線用於授權新增 AWS 帳戶 至空間。連線中會使用以身分識別為基礎的原則。 AWS 帳戶
依預設,使用者和角色沒有建立或修改 CodeCatalyst資源的權限。他們也無法使用 AWS Management Console、 AWS Command Line Interface (AWS CLI) 或 AWS API 來執行工作。IAM 管理員必須建立 IAM 政策,授與使用者和角色對其所需資源執行動作的許可。管理員接著必須將這些政策連接至需要這些許可的使用者。
下列 IAM 政策範例會針對與帳戶連線相關的動作授予許可。使用它們來限制將帳戶連接到的存取 CodeCatalyst。
範例 1:允許使用者接受單一連線要求 AWS 區域
下列權限原則僅允許使用者檢視和接受 CodeCatalyst 和之間的連線要求 AWS 帳戶。此外,政策使用條件只允許在 us-west-2 區域中執行動作,而不允許其他動作。 AWS 區域若要檢視和核准請求,使用者必須使用 AWS Management Console 與要求中指定的相同帳戶登入。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codecatalyst:AcceptConnection", "codecatalyst:GetPendingConnection" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestedRegion": "us-west-2" } } } ] }
範例 2:允許在主控台中管理單一連線 AWS 區域
下列權限原則可讓使用者管理單一區域之 AWS 帳戶 間 CodeCatalyst和之間的連線。此原則會使用條件,只允許在 us-west-2 區域中執行動作,而不允許其他動作。 AWS 區域建立連線之後,您可以在中選擇選項來建立CodeCatalystWorkflowDevelopmentRole-spaceName
角色 AWS Management Console。在範例策略中,iam:PassRole
動作的條件包括的服務主參與者 CodeCatalyst。只有具有該存取權限的角色才會在中建立 AWS Management Console。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codecatalyst:*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestedRegion": "us-west-2" } } }, { "Effect": "Allow", "Action": [ "iam:CreateRole", "iam:CreatePolicy", "iam:AttachRolePolicy", "iam:ListRoles" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": [ "codecatalyst.amazonaws.com", "codecatalyst-runner.amazonaws.com" ] } } } ] }
範例 3:拒絕管理連線
下列權限原則會拒絕使用者管理 CodeCatalyst 和 AWS 帳戶之間連線的任何能力。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "codecatalyst:*" ], "Resource": "*" } ] }
CodeCatalyst 權限參考
本節為與連線的帳號連線資源搭配使用的動作 AWS 帳戶 提供權限參考 CodeCatalyst。下節說明與連線帳號相關的僅限權限動作。
帳戶連線所需的權限
使用帳戶連線需要下列權限。
CodeCatalyst 帳戶連線的權限 | 所需的許可 | 資源 |
---|---|---|
AcceptConnection | 需要接受將此帳戶連接到 CodeCatalyst空間的請求。這只是 IAM 政策許可,不是 API 動作。 |
僅支援政策 |
AssociateIamRoleToConnection | 將 IAM 角色與帳戶連線建立關聯時需要。這只是 IAM 政策許可,不是 API 動作。 | arn:aws:codecatalyst:region: |
DeleteConnection | 刪除帳戶連線時需要。這只是 IAM 政策許可,不是 API 動作。 | arn:aws:codecatalyst:region: |
DisassociateIamRoleFromConnection | 必須取消 IAM 角色與帳戶連線的關聯。這只是 IAM 政策許可,不是 API 動作。 | arn:aws:codecatalyst:region: |
GetBillingAuthorization | 描述帳戶連線的帳單授權時需要。這只是 IAM 政策許可,不是 API 動作。 | arn:aws:codecatalyst:region: |
GetConnection | 需要取得帳戶連線。這只是 IAM 政策許可,不是 API 動作。 | arn:aws:codecatalyst:region: |
GetPendingConnection | 需要取得擱置的要求才能將此帳戶連線至 CodeCatalyst空間。這只是 IAM 政策許可,不是 API 動作。 |
僅支援政策 |
ListConnections | 必須列出未擱置的帳號連線。這只是 IAM 政策許可,不是 API 動作。 |
僅支援政策 |
ListIamRolesForConnection | 必須列出與帳戶連線相關聯的 IAM 角色。這只是 IAM 政策許可,不是 API 動作。 | arn:aws:codecatalyst:region: |
ListTagsForResource | 必須列出與帳號連線相關聯的標籤。這只是 IAM 政策許可,不是 API 動作。 | arn:aws:codecatalyst:region: |
PutBillingAuthorization | 需要建立或更新帳戶連線的帳單授權。這只是 IAM 政策許可,不是 API 動作。 | arn:aws:codecatalyst:region: |
RejectConnection | 需要拒絕將此帳戶連線到 CodeCatalyst空間的要求。這只是 IAM 政策許可,不是 API 動作。 |
僅支援政策 |
TagResource | 需要建立或編輯與帳戶連線相關聯的標籤。這只是 IAM 政策許可,不是 API 動作。 | arn:aws:codecatalyst:region: |
UntagResource | 需要移除與帳戶連線相關聯的標籤。這只是 IAM 政策許可,不是 API 動作。 | arn:aws:codecatalyst:region: |
IAM 身分中心應用程式所需的許可
使用 IAM 身分中心應用程式需要下列許可。
CodeCatalyst IAM 身分中心應用程式的許可 | 所需的許可 | 資源 |
---|---|---|
AssociateIdentityCenterApplicationToSpace | 將 IAM 身分中心應用程式與 CodeCatalyst 空間建立關聯時需要。這只是 IAM 政策許可,不是 API 動作。 | arn:aws:codecatalyst:region: |
AssociateIdentityToIdentityCenterApplication | 必須將身分與 CodeCatalyst空間的 IAM 身分中心應用程式建立關聯。這只是 IAM 政策許可,不是 API 動作。 | arn:aws:codecatalyst:region: |
BatchAssociateIdentitiesToIdentityCenterApplication | 需要將多個身分與 CodeCatalyst 空間的 IAM 身分中心應用程式建立關聯。這只是 IAM 政策許可,不是 API 動作。 | arn:aws:codecatalyst:region: |
BatchDisassociateIdentitiesFromIdentityCenterApplication | 必須取消多個身分與 IAM 身分中心應用程式的 CodeCatalyst 空間關聯。這只是 IAM 政策許可,不是 API 動作。 | arn:aws:codecatalyst:region: |
CreateIdentityCenterApplication | 建立 IAM 身分中心應用程式所需。這只是 IAM 政策許可,不是 API 動作。 | arn:aws:codecatalyst:region: |
CreateSpaceAdminRoleAssignment | 為指定 CodeCatalyst空間和 IAM 身分中心應用程式建立管理員角色指派時需要。這只是 IAM 政策許可,不是 API 動作。 | arn:aws:codecatalyst:region: |
DeleteIdentityCenterApplication | 刪除 IAM 身分中心應用程式所需。這只是 IAM 政策許可,不是 API 動作。 | arn:aws:codecatalyst:region: |
DisassociateIdentityCenterApplicationFromSpace | 必須取消 IAM 身分中心應用程式與 CodeCatalyst 空間的關聯。這只是 IAM 政策許可,不是 API 動作。 | arn:aws:codecatalyst:region: |
DisassociateIdentityFromIdentityCenterApplication | 必須取消身分與 IAM 身分中心應用程式的 CodeCatalyst 空間關聯。這只是 IAM 政策許可,不是 API 動作。 | arn:aws:codecatalyst:region: |
GetIdentityCenterApplication | 取得 IAM 身分中心應用程式相關資訊的必要條件。這只是 IAM 政策許可,不是 API 動作。 | arn:aws:codecatalyst:region: |
ListIdentityCenterApplications | 需要檢視帳戶中所有 IAM 身分中心應用程式的清單。這只是 IAM 政策許可,不是 API 動作。 |
僅支援政策 |
ListIdentityCenterApplicationsForSpace | 需要按 CodeCatalyst 空間檢視 IAM 身分中心應用程式清單。這只是 IAM 政策許可,不是 API 動作。 | arn:aws:codecatalyst:region: |
ListSpacesForIdentityCenterApplication | 需要透過 IAM 身分中心應用程式檢視 CodeCatalyst 空間清單。這只是 IAM 政策許可,不是 API 動作。 | arn:aws:codecatalyst:region: |
SynchronizeIdentityCenterApplication | 需要將 IAM 身分中心應用程式與支援身分存放區同步。這只是 IAM 政策許可,不是 API 動作。 | arn:aws:codecatalyst:region: |
UpdateIdentityCenterApplication | 需要更新 IAM 身分中心應用程式。這只是 IAM 政策許可,不是 API 動作。 | arn:aws:codecatalyst:region: |