

Amazon CodeCatalyst 不再向新客戶開放。現有客戶可以繼續正常使用該服務。如需詳細資訊，請參閱[如何從 CodeCatalyst 遷移](migration.md)。

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

# Identity and Access Management 和 Amazon CodeCatalyst
<a name="security-iam"></a>

在 Amazon CodeCatalyst 中，您可以建立並使用 AWS 建置器 ID 來登入和存取您的空間和專案。 AWS Builder ID 不是 AWS Identity and Access Management (IAM) 中的身分，也不存在於 中 AWS 帳戶。不過，CodeCatalyst 在驗證空間以進行計費時，以及連線到 AWS 帳戶 以建立和使用其中的資源時，確實會與 IAM 整合 AWS 帳戶。

AWS Identity and Access Management (IAM) 是 AWS 服務 ，可協助管理員安全地控制對 AWS 資源的存取。IAM 管理員可以控制誰能「完成身分驗證」(已登入) 和「獲得授權」(具有許可) 而得以使用資源。****IAM 是您可以免費使用 AWS 服務 的 。

當您在 Amazon CodeCatalyst 中建立空間時，您必須連接 AWS 帳戶 做為空間的帳單帳戶。您必須在 中具有管理員許可 AWS 帳戶 ，才能驗證 CodeCatalyst 空間，或具有 許可。您也可以選擇為空間新增 IAM 角色，讓 CodeCatalyst 可用來在該連線中建立和存取資源 AWS 帳戶。這稱為[服務角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-role)。您可以選擇建立與多個 的連線， AWS 帳戶 並在每個帳戶中為 CodeCatalyst 建立服務角色。

**注意**  
CodeCatalyst 的帳單會在 AWS 帳戶 指定為帳單帳戶的 中進行。不過，如果您在 AWS 帳戶 中或任何其他連線的 中建立 CodeCatalyst 服務角色 AWS 帳戶，則 CodeCatalyst 服務角色建立和使用的資源將在該連線的 中計費 AWS 帳戶。如需詳細資訊，請參閱《Amazon CodeCatalyst 管理員指南》中的[管理帳單](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-billing.html)。

**Topics**
+ [IAM 中的身分型政策](#id-based-policies)
+ [IAM 中的政策動作](#id-based-policies-actions)
+ [IAM 中的政策資源](#id-based-policies-resources)
+ [IAM 中的政策條件索引鍵](#id-based-policies-conditionkeys)
+ [CodeCatalyst 連線的身分型政策範例](#id-based-policy-examples)
+ [使用標籤控制對帳戶連線資源的存取](id-based-policy-examples-tags.md)
+ [CodeCatalyst 許可參考](#permissions-reference)
+ [使用 CodeCatalyst 的服務連結角色](using-service-linked-roles.md)
+ [AWS Amazon CodeCatalyst 的 受管政策](security-iam-awsmanpol.md)
+ [使用 IAM 角色授予專案 AWS 資源的存取權](ipa-iam-roles.md)

## IAM 中的身分型政策
<a name="id-based-policies"></a>

身分型政策是您可以連接到身分的 JSON 許可政策文件。該身分可以是使用者、使用者群組或角色。這些政策可控制身分在何種條件下能對哪些資源執行哪些動作。若要了解如何建立身分類型政策，請參閱《IAM 使用者指南》**中的[建立 IAM 政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)。

使用 IAM 身分型政策，您可以指定允許或拒絕的動作和資源，以及在何種條件下允許或拒絕動作。您無法在身分型政策中指定主體，因為這會套用至連接的使用者或角色。如要了解您在 JSON 政策中使用的所有元素，請參閱《*IAM 使用者指南*》中的 [IAM JSON 政策元素參考](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html)。

### CodeCatalyst 的身分型政策範例
<a name="id-based-policies-examples"></a>



若要檢視 CodeCatalyst 身分型政策的範例，請參閱 [CodeCatalyst 連線的身分型政策範例](#id-based-policy-examples)。

## IAM 中的政策動作
<a name="id-based-policies-actions"></a>

管理員可以使用 AWS JSON 政策來指定誰可以存取內容。也就是說，哪個**委託人**可以對哪些**資源**執行哪些**動作**，以及在哪些**條件下**執行哪些動作。

JSON 政策的 `Action` 元素描述您可以用來允許或拒絕政策中存取的動作。政策動作通常具有與相關聯 AWS API 操作相同的名稱。有一些例外狀況，例如沒有相符的 API 操作的*僅限許可動作*。也有一些作業需要政策中的多個動作。這些額外的動作稱為*相依動作*。

若要在單一陳述式中指定多個動作，請用逗號分隔。

```
"Action": [
      "prefix:{{action1}}",
      "prefix:{{action2}}"
         ]
```

## IAM 中的政策資源
<a name="id-based-policies-resources"></a>

管理員可以使用 AWS JSON 政策來指定誰可以存取內容。也就是說，哪個**委託人**可以對哪些**資源**執行哪些**動作**，以及在哪些**條件下**執行哪些動作。

`Resource` JSON 政策元素可指定要套用動作的物件。陳述式必須包含 `Resource` 或 `NotResource` 元素。最佳實務是使用其 [Amazon Resource Name (ARN)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) 來指定資源。您可以針對支援特定資源類型的動作 (*稱為資源層級許可*) 來這麼做。

對於不支援資源層級許可的動作 (例如列出操作)，請使用萬用字元 (\*) 來表示陳述式適用於所有資源。

```
"Resource": "*"
```

## IAM 中的政策條件索引鍵
<a name="id-based-policies-conditionkeys"></a>

管理員可以使用 AWS JSON 政策來指定誰可以存取內容。也就是說，哪個**委託人**可以對哪些**資源**執行哪些**動作**，以及在哪些**條件下**執行哪些動作。

`Condition` 元素 (或 `Condition` *區塊*) 可讓您指定使陳述式生效的條件。`Condition` 元素是選用項目。您可以建立使用[條件運算子](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html)的條件運算式 (例如等於或小於)，來比對政策中的條件和請求中的值。

若您在陳述式中指定多個 `Condition` 元素，或是在單一 `Condition` 元素中指定多個索引鍵， AWS 會使用邏輯 `AND` 操作評估他們。若您為單一條件索引鍵指定多個值， AWS 會使用邏輯 `OR` 操作評估條件。必須符合所有條件，才會授與陳述式的許可。

 您也可以在指定條件時使用預留位置變數。如需更多資訊，請參閱《*IAM 使用者指南*》中的 [IAM 政策元素：變數和標籤](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html)。

AWS 支援全域條件金鑰和服務特定的條件金鑰。若要查看 AWS 全域條件金鑰，請參閱《*IAM 使用者指南*》中的 [AWS 全域條件內容金鑰](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)。

## CodeCatalyst 連線的身分型政策範例
<a name="id-based-policy-examples"></a>

在 CodeCatalyst 中， AWS 帳戶 需要管理空間的帳單，以及存取專案工作流程中的資源。帳戶連線用於授權 AWS 帳戶 新增至空間。已連線的 中會使用身分型政策 AWS 帳戶。

根據預設，使用者和角色沒有建立或修改 CodeCatalyst 資源的許可。他們也無法使用 AWS 管理主控台、 AWS Command Line Interface (AWS CLI) 或 AWS API 來執行任務。IAM 管理員必須建立 IAM 政策，授與使用者和角色對其所需資源執行動作的許可。管理員接著必須將這些政策連接至需要這些許可的使用者。

下列範例 IAM 政策會授予與帳戶連線相關的動作許可。使用它們來限制將帳戶連線至 CodeCatalyst 的存取。

### 範例 1：允許使用者接受單一 中的連線請求 AWS 區域
<a name="id-based-policy-examples-accept-only"></a>

下列許可政策只允許使用者檢視和接受 CodeCatalyst 和 之間連線的請求 AWS 帳戶。此外，政策使用 條件來僅允許 us-west-2 區域中的動作，而不是來自其他 的動作 AWS 區域。若要檢視和核准請求，使用者 AWS 管理主控台 會使用與請求中指定的相同帳戶登入 。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "codecatalyst:AcceptConnection",
        "codecatalyst:GetPendingConnection"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:RequestedRegion": "us-west-2"
        }
      }
    }
  ]
}
```

------

### 範例 2：允許在主控台中管理單一 的連線 AWS 區域
<a name="id-based-policy-examples-allow"></a>

下列許可政策可讓使用者管理 CodeCatalyst 和單一區域中 AWS 帳戶 的連線。此政策使用 條件來僅允許 us-west-2 區域中的動作，而不是來自其他 的動作 AWS 區域。建立連線後，您可以在 中選擇 選項來建立**CodeCatalystWorkflowDevelopmentRole-{{spaceName}}**角色 AWS 管理主控台。在範例政策中，`iam:PassRole`動作的條件包含 CodeCatalyst 的服務主體。只會在 中建立具有該存取權的角色 AWS 管理主控台。

------
#### [ JSON ]

****  

```
{
    "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：拒絕管理連線
<a name="id-based-policy-examples-deny"></a>

下列許可政策會拒絕使用者管理 CodeCatalyst 與 之間的連線。 AWS 帳戶

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "codecatalyst:*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## CodeCatalyst 許可參考
<a name="permissions-reference"></a>

本節提供與連線至 CodeCatalyst 之 的帳戶連線資源搭配使用之動作 AWS 帳戶 的許可參考。下一節說明與連線帳戶相關的僅限許可動作。

### 帳戶連線的必要許可
<a name="permissions-reference-connections"></a>

 使用帳戶連線需要下列許可。


****  

| 帳戶連線的 CodeCatalyst 許可 | 所需的許可 | Resources | 
| --- | --- | --- | 
| AcceptConnection | 需要接受請求才能將此帳戶連線到 CodeCatalyst 空間。這只是 IAM 政策許可，不是 API 動作。 | 僅支援政策 `Resource` 元素中的萬用字元 (\*)。 | 
| AssociateIamRoleToConnection | 將 IAM 角色與帳戶連線建立關聯時需要。這只是 IAM 政策許可，不是 API 動作。 | arn:aws:codecatalyst:region:{{account\_ID}}:/connections/{{connection\_ID}} | 
| DeleteConnection | 刪除帳戶連線時需要。這只是 IAM 政策許可，不是 API 動作。 | arn:aws:codecatalyst:region:{{account\_ID}}:/connections/{{connection\_ID}} | 
| DisassociateIamRoleFromConnection | 取消 IAM 角色與帳戶連線的關聯時需要。這只是 IAM 政策許可，不是 API 動作。 | arn:aws:codecatalyst:region:{{account\_ID}}:/connections/{{connection\_ID}} | 
| GetBillingAuthorization | 描述帳戶連線的帳單授權時需要。這只是 IAM 政策許可，不是 API 動作。 | arn:aws:codecatalyst:region:{{account\_ID}}:/connections/{{connection\_ID}} | 
| GetConnection | 取得帳戶連線時需要。這只是 IAM 政策許可，不是 API 動作。 | arn:aws:codecatalyst:region:{{account\_ID}}:/connections/{{connection\_ID}} | 
| GetPendingConnection | 需要取得待定請求才能將此帳戶連線至 CodeCatalyst 空間。這只是 IAM 政策許可，不是 API 動作。 | 僅支援政策 `Resource` 元素中的萬用字元 (\*)。 | 
| ListConnections | 列出未擱置的帳戶連線時需要。這只是 IAM 政策許可，不是 API 動作。 | 僅支援政策 `Resource` 元素中的萬用字元 (\*)。 | 
| ListIamRolesForConnection | 列出與帳戶連線相關聯的 IAM 角色時需要。這只是 IAM 政策許可，不是 API 動作。 | arn:aws:codecatalyst:region:{{account\_ID}}:/connections/{{connection\_ID}} | 
| ListTagsForResource | 列出與帳戶連線相關聯的標籤時需要。這只是 IAM 政策許可，不是 API 動作。 | arn:aws:codecatalyst:region:{{account\_ID}}:/connections/{{connection\_ID}} | 
| PutBillingAuthorization | 建立或更新帳戶連線的帳單授權時需要。這只是 IAM 政策許可，不是 API 動作。 | arn:aws:codecatalyst:region:{{account\_ID}}:/connections/{{connection\_ID}} | 
| RejectConnection | 拒絕將此帳戶連線至 CodeCatalyst 空間的請求時需要。這只是 IAM 政策許可，不是 API 動作。 | 僅支援政策 `Resource` 元素中的萬用字元 (\*)。 | 
| TagResource | 建立或編輯與帳戶連線相關聯的標籤時需要。這只是 IAM 政策許可，不是 API 動作。 | arn:aws:codecatalyst:region:{{account\_ID}}:/connections/{{connection\_ID}} | 
| UntagResource | 移除與帳戶連線相關聯的標籤時需要。這只是 IAM 政策許可，不是 API 動作。 | arn:aws:codecatalyst:region:{{account\_ID}}:/connections/{{connection\_ID}} | 

### IAM Identity Center 應用程式的必要許可
<a name="permissions-reference-applications"></a>

 使用 IAM Identity Center 應用程式需要下列許可。


****  

| IAM Identity Center 應用程式的 CodeCatalyst 許可 | 所需的許可 | Resources | 
| --- | --- | --- | 
| AssociateIdentityCenterApplicationToSpace | 將 IAM Identity Center 應用程式與 CodeCatalyst 空間建立關聯時需要。這只是 IAM 政策許可，不是 API 動作。 | arn:aws:codecatalyst:region:{{account\_ID}}:/identity-center-applications/{{identity-center-application\_ID}} | 
| AssociateIdentityToIdentityCenterApplication | 將身分與 CodeCatalyst 空間的 IAM Identity Center 應用程式建立關聯時需要。這只是 IAM 政策許可，不是 API 動作。 | arn:aws:codecatalyst:region:{{account\_ID}}:/identity-center-applications/{{identity-center-application\_ID}} | 
| BatchAssociateIdentitiesToIdentityCenterApplication | 將多個身分與 CodeCatalyst 空間的 IAM Identity Center 應用程式建立關聯時需要。這只是 IAM 政策許可，不是 API 動作。 | arn:aws:codecatalyst:region:{{account\_ID}}:/identity-center-applications/{{identity-center-application\_ID}} | 
| BatchDisassociateIdentitiesFromIdentityCenterApplication | 將多個身分與 CodeCatalyst 空間的 IAM Identity Center 應用程式取消關聯時需要。這只是 IAM 政策許可，不是 API 動作。 | arn:aws:codecatalyst:region:{{account\_ID}}:/identity-center-applications/{{identity-center-application\_ID}} | 
| CreateIdentityCenterApplication | 建立 IAM Identity Center 應用程式時需要。這只是 IAM 政策許可，不是 API 動作。 | arn:aws:codecatalyst:region:{{account\_ID}}:/identity-center-applications/{{identity-center-application\_ID}} | 
| CreateSpaceAdminRoleAssignment | 為指定的 CodeCatalyst 空間和 IAM Identity Center 應用程式建立管理員角色指派時需要。這只是 IAM 政策許可，不是 API 動作。 | arn:aws:codecatalyst:region:{{account\_ID}}:/identity-center-applications/{{identity-center-application\_ID}} | 
| DeleteIdentityCenterApplication | 刪除 IAM Identity Center 應用程式時需要。這只是 IAM 政策許可，不是 API 動作。 | arn:aws:codecatalyst:region:{{account\_ID}}:/identity-center-applications/{{identity-center-application\_ID}} | 
| DisassociateIdentityCenterApplicationFromSpace | 取消 IAM Identity Center 應用程式與 CodeCatalyst 空間的關聯時需要。這只是 IAM 政策許可，不是 API 動作。 | arn:aws:codecatalyst:region:{{account\_ID}}:/identity-center-applications/{{identity-center-application\_ID}} | 
| DisassociateIdentityFromIdentityCenterApplication | 將身分與 CodeCatalyst 空間的 IAM Identity Center 應用程式取消關聯時需要。這只是 IAM 政策許可，不是 API 動作。 | arn:aws:codecatalyst:region:{{account\_ID}}:/identity-center-applications/{{identity-center-application\_ID}} | 
| GetIdentityCenterApplication | 取得 IAM Identity Center 應用程式的相關資訊時需要。這只是 IAM 政策許可，不是 API 動作。 | arn:aws:codecatalyst:region:{{account\_ID}}:/identity-center-applications/{{identity-center-application\_ID}} | 
| ListIdentityCenterApplications | 檢視帳戶中所有 IAM Identity Center 應用程式清單時需要。這只是 IAM 政策許可，不是 API 動作。 | 僅支援政策 `Resource` 元素中的萬用字元 (\*)。 | 
| ListIdentityCenterApplicationsForSpace | 依 CodeCatalyst 空間檢視 IAM Identity Center 應用程式清單時需要。這只是 IAM 政策許可，不是 API 動作。 | arn:aws:codecatalyst:region:{{account\_ID}}:/identity-center-applications/{{identity-center-application\_ID}} | 
| ListSpacesForIdentityCenterApplication | 依 IAM Identity Center 應用程式檢視 CodeCatalyst 空間清單時需要。這只是 IAM 政策許可，不是 API 動作。 | arn:aws:codecatalyst:region:{{account\_ID}}:/identity-center-applications/{{identity-center-application\_ID}} | 
| SynchronizeIdentityCenterApplication | 同步 IAM Identity Center 應用程式與後端身分存放區時需要。這只是 IAM 政策許可，不是 API 動作。 | arn:aws:codecatalyst:region:{{account\_ID}}:/identity-center-applications/{{identity-center-application\_ID}} | 
| UpdateIdentityCenterApplication | 更新 IAM Identity Center 應用程式時需要。這只是 IAM 政策許可，不是 API 動作。 | arn:aws:codecatalyst:region:{{account\_ID}}:/identity-center-applications/{{identity-center-application\_ID}} | 