

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

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

# Amazon CodeCatalyst 的安全性
<a name="security"></a>

的雲端安全性 AWS 是最高優先順序。身為 AWS 客戶，您可以受益於資料中心和網路架構，這些架構專為滿足最安全敏感空間的需求而建置。

安全性是 AWS 與您之間的共同責任。[共同責任模型](https://aws.amazon.com/compliance/shared-responsibility-model/)將其描述為雲端的安全性和雲端中的安全性：
+ **雲端的安全性** – AWS 負責保護在 中執行 AWS 服務的基礎設施 AWS 雲端。 AWS 也為您提供可安全使用的服務。在[AWS 合規計畫](https://aws.amazon.com/compliance/programs/)中，第三方稽核人員會定期測試和驗證我們安全的有效性。若要了解適用於 CodeCatalyst 的合規計劃，請參閱[AWS 合規計劃的 服務範圍](https://aws.amazon.com/compliance/services-in-scope/)。
+ **雲端的安全性** – 您的責任取決於您使用 AWS 的服務。您也必須對其他因素負責，包括資料的機密性、您公司的要求和適用法律和法規 

本文件可協助您了解如何在使用 Amazon CodeCatalyst 時套用共同責任模型。它說明如何設定 CodeCatalyst 以符合您的安全和合規目標。您也會了解如何使用其他 AWS 服務來協助您監控和保護 CodeCatalyst 資源。

**Topics**
+ [資料隱私權](data-privacy.md)
+ [資料保護](data-protection.md)
+ [CodeCatalyst 和 Identity and Access Management](security-iam.md)
+ [法規遵循驗證](compliance-validation.md)
+ [恢復能力](disaster-recovery-resiliency.md)
+ [基礎設施安全性](infrastructure-security.md)
+ [組態與漏洞分析](vulnerability-analysis-and-management.md)
+ [您在 Amazon CodeCatalyst 中的資料和隱私權](your-data-privacy.md)
+ [工作流程動作的最佳實務](security-best-practices-for-actions.md)
+ [了解 CodeCatalyst 信任模型](trust-model.md)

# Amazon CodeCatalyst 中的資料隱私權
<a name="data-privacy"></a>

CodeCatalyst 會在 IAM Identity Center 中收集彙總資訊。CodeCatalyst 使用此彙總資料來提供 CodeCatalyst 中空間和專案的存取權。會收集下列彙總資訊：
+ 使用者的全名
+ 使用者的電子郵件
+ 使用者的使用者名稱

CodeCatalyst 資料會在靜態時自動加密。不需要客戶動作。刪除使用者、身分中心或空間時，CodeCatalyst 會在 24 小時內刪除客戶資料。

CodeCatalyst 使用擁有 AWS的 AWS KMS 金鑰。CodeCatalyst 不支援針對從 IAM Identity Center 擷取的身分屬性使用客戶受管 KMS 金鑰進行靜態加密。

如需 AWS KMS 金鑰的詳細資訊，請參閱[AWS KMS 金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html)的使用者文件。

# Amazon CodeCatalyst 中的資料保護
<a name="data-protection"></a>

安全與合規是 Amazon CodeCatalyst 與客戶之間的共同責任，就像 AWS [共同責任模型](https://aws.amazon.com/compliance/shared-responsibility-model/)適用於您對工作流程中所用 AWS 資源的使用。如此模型所述，CodeCatalyst 負責保護 服務的全域基礎設施。您負責維護在此基礎設施上託管內容的控制權。此共同責任模型適用於 CodeCatalyst 中的資料保護。

基於資料保護目的，我們建議您保護 帳戶登入資料，並在登入時設定多重驗證。如需詳細資訊，請參閱[設定您的 AWS 建置器 ID 以使用多重要素驗證 (MFA) 登入](mfa.md)。

請勿在標籤或自由格式欄位中輸入機密或敏感資訊，例如客戶的電子郵件地址，例如**名稱**欄位。這包括除了任何連線之外，您在 CodeCatalyst 中輸入的資源名稱和任何其他識別符 AWS 帳戶。例如，請勿在空間、專案或部署機群名稱中輸入機密或敏感資訊。您在標籤、名稱或用於名稱的任意格式欄位中輸入的任何資料都可能用於計費或診斷日誌，也可以包含在 URL 路徑中。這適用於使用 主控台、API AWS CLI、CodeCatalyst 動作開發套件或任何 AWS SDKs。

如果您提供 URL 給外部伺服器，我們強烈建議您不要在 URL 中包含任何安全登入資料資訊，以驗證您對該伺服器的請求。

CodeCatalyst 來源儲存庫會在靜態時自動加密。不需要客戶動作。CodeCatalyst 也會使用 HTTPS 通訊協定加密傳輸中的儲存庫資料。

CodeCatalyst 不支援針對從 IAM Identity Center 擷取的身分屬性使用客戶受管 KMS 金鑰進行靜態加密。

CodeCatalyst 支援 MFA。如需詳細資訊，請參閱[設定您的 AWS 建置器 ID 以使用多重要素驗證 (MFA) 登入](mfa.md)。

## 資料加密
<a name="data-encryption"></a>

CodeCatalyst 會在服務內安全地存放和傳輸資料。所有資料都會在傳輸中和靜態時加密。服務建立或儲存的任何資料，包括服務的任何中繼資料，都會原生儲存在服務中並加密。

**注意**  
雖然問題的相關資訊會安全地存放在服務中，但開啟問題的相關資訊也會儲存在檢視問題板、待處理項目和個別問題的瀏覽器本機快取中。為了獲得最佳安全性，請務必清除瀏覽器快取以移除此資訊。

如果您使用連結至 CodeCatalyst 的資源，例如與 GitHub AWS 帳戶 中 或連結儲存庫的帳戶連線，則從 CodeCatalyst 傳輸到該連結資源的資料會加密，但該連結資源中的資料處理是由該連結服務管理。如需詳細資訊，請參閱連結服務的文件和 [Amazon CodeCatalyst 中工作流程動作的最佳實務](security-best-practices-for-actions.md)。

### 金鑰管理
<a name="key-management"></a>

CodeCatalyst 使用 擁有 AWS的 KMS 金鑰。這表示金鑰是由 管理 AWS ，客戶不需要直接建立或管理金鑰。這可簡化 中常見加密案例的金鑰管理 AWS。

## 網際網路流量隱私權
<a name="inter-network-traffic-privacy"></a>

當您在 CodeCatalyst 中建立空間時，您可以選擇要存放該空間之資料和資源的 AWS 區域 。專案資料和中繼資料永遠不會離開該 AWS 區域。不過，為了支援 CodeCatalyst 內的導覽，會跨[分割區](https://docs.aws.amazon.com/whitepapers/latest/aws-fault-isolation-boundaries/partitions.html) AWS 區域 中的所有 複寫一組有限的空間、專案和使用者中繼資料。它不會複寫到該分割區 AWS 區域 以外的 。例如，如果您在建立空間 AWS 區域 時選擇**美國西部 （奧勒岡）** 做為 ，您的資料將不會複寫至中國區域 或 中的區域 AWS GovCloud (US)。如需詳細資訊，請參閱[管理 AWS 區域](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html)、[AWS 全域基礎設施](https://aws.amazon.com/about-aws/global-infrastructure)[AWS 和服務端點](https://docs.aws.amazon.com/general/latest/gr/rande.html#region-names-codes)。

跨分割區 AWS 區域 內部複寫的資料包括：
+ 加密雜湊值，代表空間名稱，以確保空間名稱的唯一性。此值不可人類讀取，不會公開空間的實際名稱
+ 空間的唯一 ID
+ 協助跨空間導覽的空間中繼資料
+  AWS 區域 空間所在的
+ 空間中所有專案的唯一 IDs 
+ 角色 ID，指出使用者在空間或專案中的角色
+ 註冊 CodeCatalyst 時，有關註冊程序的資料和中繼資料，包括：
  + 的唯一 ID AWS 建構家 ID
  + 使用者在其 中的顯示名稱 AWS 建構家 ID
  + 使用者在其 中的別名 AWS 建構家 ID
  + 使用者註冊其 時使用的電子郵件地址 AWS 建構家 ID
  + 註冊程序的進度
  + 如果建立空間做為註冊程序的一部分，則會使用 AWS 帳戶 ID 做為空間的帳單帳戶

空間名稱在 CodeCatalyst 中是唯一的。請務必不要在空格的名稱中包含敏感資料。

使用連結的資源和連線帳戶時，例如與 AWS 帳戶 或 GitHub 儲存庫的連線，我們建議您使用每個儲存庫支援的最高安全性來設定來源和目的地位置。CodeCatalyst 使用 Transport Layer Security (TLS) 1.2 保護 AWS 帳戶 AWS 區域和可用區域之間的連線。



# 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) 來指定資源。您可以針對支援特定資源類型的動作 (*稱為資源層級許可*) 來這麼做。

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

```
"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": "*"
        }
    ]
}
```

------

# 使用標籤控制對帳戶連線資源的存取
<a name="id-based-policy-examples-tags"></a>

標籤可以連接到資源，或在請求中傳遞給支援標記的服務。政策中的資源可以有標籤，政策中的某些動作可以包含標籤。標記條件索引鍵包含 `aws:RequestTag`和 `aws:ResourceTag` 條件索引鍵。建立 IAM 政策時，可使用標籤條件索引鍵來控制以下項目：
+ 哪些使用者可以根據其已有的標籤，對連線資源執行動作。
+ 可在動作請求中傳遞的標籤。
+ 請求中是否可使用特定的標籤鍵。

下列範例示範如何在 CodeCatalyst 帳戶連線使用者的政策中指定標籤條件。如需條件索引鍵的詳細資訊，請參閱 [IAM 中的政策條件索引鍵](security-iam.md#id-based-policies-conditionkeys)。

## 範例 1：根據請求中的標籤允許動作
<a name="id-based-policy-examples-tags-request"></a>

下列政策授予使用者核准帳戶連線的許可。

若要這樣做，它會在請求指定名為 `Project` 且值為 `ProjectA` 的標籤時允許 `AcceptConnection` 和 `TagResource` 動作。( `aws:RequestTag` 條件索引鍵用來控制哪些標籤可在 IAM 請求中傳遞。) `aws:TagKeys` 條件可確保標籤索引鍵區分大小寫。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "codecatalyst:AcceptConnection",
        "codecatalyst:TagResource"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/Project": "ProjectA"
        },
        "ForAllValues:StringEquals": {
          "aws:TagKeys": ["Project"]
        }
      }
    }
  ]
}
```

------

## 範例 2：根據資源標籤允許動作
<a name="id-based-policy-examples-tags-resource"></a>

下列政策會授予使用者許可，以對帳戶連線資源執行動作並取得相關資訊。

若要這樣做，如果連線的標籤名為 `Project` 且值為 ，則允許特定動作`ProjectA`。( `aws:ResourceTag` 條件索引鍵用來控制哪些標籤可在 IAM 請求中傳遞。)

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "codecatalyst:GetConnection",
        "codecatalyst:DeleteConnection",
        "codecatalyst:AssociateIamRoleToConnection",
        "codecatalyst:DisassociateIamRoleFromConnection",
        "codecatalyst:ListIamRolesForConnection",
        "codecatalyst:PutBillingAuthorization"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/Project": "ProjectA"
        }
      }
    }
  ]
}
```

------

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

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

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

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


****  

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

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

# 使用 CodeCatalyst 的服務連結角色
<a name="using-service-linked-roles"></a>

Amazon CodeCatalyst 使用 AWS Identity and Access Management (IAM) [服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role)。服務連結角色是直接連結至 CodeCatalyst 的唯一 IAM 角色類型。CodeCatalyst 會預先定義服務連結角色，並包含該服務代表您呼叫其他 AWS 服務所需的所有許可。

服務連結角色可讓您更輕鬆地設定 CodeCatalyst，因為您不必手動新增必要的許可。CodeCatalyst 定義其服務連結角色的許可，除非另有定義，否則只有 CodeCatalyst 可以擔任其角色。定義的許可包括信任政策和許可政策，且該許可政策無法附加至其他 IAM 實體。

您必須先刪除服務連結角色的相關資源，才能將其刪除。這可保護您的 CodeCatalyst 資源，因為您不會不小心移除存取資源的許可。

如需有關支援服務連結角色的其他 服務的資訊，請參閱[AWS 使用 IAM 的服務](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)，並在**服務連結角色**欄中尋找具有**是**的服務。選擇具有連結的**是**，以檢視該服務的服務連結角色文件。

## CodeCatalyst 的服務連結角色許可
<a name="slr-permissions"></a>

CodeCatalyst 使用名為 的服務連結角色 **AmazonCodeCatalystServiceRoleForIdentityCenterApplicationSynchronization** – 允許 Amazon CodeCatalyst 代表您存取應用程式執行個體描述檔和相關聯的目錄使用者和群組。

AmazonCodeCatalystServiceRoleForIdentityCenterApplicationSynchronization 服務連結角色信任下列服務以擔任角色：
+ `codecatalyst.amazonaws.com`

名為 的角色許可政策AmazonCodeCatalystServiceRoleForIdentityCenterApplicationSynchronizationPolicy允許 CodeCatalyst 對指定的資源完成下列動作：
+ 動作：`View application instance profiles and associated directory users and groups`適用於 `CodeCatalyst spaces that support identity federation and SSO users and groups`

您必須設定許可，以允許您的使用者、群組或角色建立、編輯或刪除服務連結角色。如需詳細資訊，請參閱 *IAM 使用者指南*中的[服務連結角色許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions)。

## 為 CodeCatalyst 建立服務連結角色
<a name="create-slr"></a>

您不需要手動建立服務連結角色，當您在 AWS 管理主控台、 AWS CLI或 AWS API 中建立空間時，CodeCatalyst 會為您建立服務連結角色。

**重要**  
此服務連結角色可以顯示在您的帳戶，如果您於其他服務中完成一項動作時，可以使用支援此角色的功能。此外，如果您在 2023 年 11 月 17 日之前使用 CodeCatalyst 服務，則當它開始支援服務連結角色時，CodeCatalyst 會在您的帳戶中建立該AmazonCodeCatalystServiceRoleForIdentityCenterApplicationSynchronization角色。若要進一步了解，請參閱[我的 中出現的新角色 AWS 帳戶](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_roles.html#troubleshoot_roles_new-role-appeared)。

若您刪除此服務連結角色，之後需要再次建立，您可以在帳戶中使用相同程序重新建立角色。當您建立空間時，CodeCatalyst 會再次為您建立服務連結角色。

您也可以使用 IAM 主控台建立服務連結角色，其中包含**檢視應用程式執行個體描述檔，以及相關聯的目錄使用者和群組**使用案例。在 AWS CLI 或 AWS API 中，使用服務名稱建立`codecatalyst.amazonaws.com`服務連結角色。如需詳細資訊，請參閱《IAM 使用者指南》**中的「[建立服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#create-service-linked-role)」。如果您刪除此服務連結角色，您可以使用此相同的程序以再次建立該角色。

## 編輯 CodeCatalyst 的服務連結角色
<a name="edit-slr"></a>

CodeCatalyst 不允許您編輯AmazonCodeCatalystServiceRoleForIdentityCenterApplicationSynchronization服務連結角色。因為有各種實體可能會參考服務連結角色，所以您無法在建立角色之後變更角色名稱。然而，您可使用 IAM 來編輯角色描述。如需詳細資訊，請參閱《*IAM 使用者指南*》中的[編輯服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role)。

## 刪除 CodeCatalyst 的服務連結角色
<a name="delete-slr"></a>

您不需要手動刪除 AmazonCodeCatalystServiceRoleForIdentityCenterApplicationSynchronization 角色。當您刪除 AWS 管理主控台、 AWS CLI或 AWS API 中的空間時，CodeCatalyst 會為您清除資源並刪除服務連結角色。

您也可以使用 IAM 主控台、 AWS CLI 或 AWS API 手動刪除服務連結角色。若要執行此操作，您必須先手動清除服務連結角色的資源，然後才能手動刪除它。

**注意**  
如果 CodeCatalyst 服務在您嘗試刪除資源時使用角色，則刪除可能會失敗。若此情況發生，請等待數分鐘後並再次嘗試操作。

**刪除 使用的 CodeCatalyst 資源 AmazonCodeCatalystServiceRoleForIdentityCenterApplicationSynchronization**
+ [刪除空格](https://docs.aws.amazon.com/codecatalyst/latest/userguide/spaces-delete.htm)。

**使用 IAM 手動刪除服務連結角色**

使用 IAM 主控台 AWS CLI、 或 AWS API 來刪除AmazonCodeCatalystServiceRoleForIdentityCenterApplicationSynchronization服務連結角色。如需詳細資訊，請參閱《*IAM 使用者指南*》中的[刪除服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role)。

## CodeCatalyst 服務連結角色支援的區域
<a name="slr-regions"></a>

CodeCatalyst 支援在提供服務的所有區域中使用服務連結角色。如需詳細資訊，請參閱 [AWS Regions and endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html)。

CodeCatalyst 不支援在提供服務的每個區域中使用服務連結角色。您可以在下列區域中使用 AmazonCodeCatalystServiceRoleForIdentityCenterApplicationSynchronization 角色。


****  

| 區域名稱 | 區域身分 | CodeCatalyst 支援 | 
| --- | --- | --- | 
| 美國東部 (維吉尼亞北部) | us-east-1 | 否 | 
| 美國東部 (俄亥俄) | us-east-2 | 否 | 
| 美國西部 (加利佛尼亞北部) | us-west-1 | 否 | 
| 美國西部 (奧勒岡) | us-west-2 | 是 | 
| Africa (Cape Town) | af-south-1 | 否 | 
| 亞太地區 (香港) | ap-east-1 | 否 | 
| 亞太地區 (雅加達) | ap-southeast-3 | 否 | 
| 亞太區域 (孟買) | ap-south-1 | 否 | 
| 亞太地區 (大阪) | ap-northeast-3 | 否 | 
| 亞太區域 (首爾) | ap-northeast-2 | 否 | 
| 亞太區域 (新加坡) | ap-southeast-1 | 否 | 
| 亞太地區 (悉尼) | ap-southeast-2 | 否 | 
| 亞太區域 (東京) | ap-northeast-1 | 否 | 
| 加拿大 (中部) | ca-central-1 | 否 | 
| 歐洲 (法蘭克福) | eu-central-1 | 否 | 
| 歐洲 (愛爾蘭) | eu-west-1 | 是 | 
| 歐洲 (倫敦) | eu-west-2 | 否 | 
| 歐洲 (米蘭) | eu-south-1 | 否 | 
| Europe (Paris) | eu-west-3 | 否 | 
| Europe (Stockholm) | eu-north-1 | 否 | 
| Middle East (Bahrain) | me-south-1 | 否 | 
| 中東 (阿拉伯聯合大公國) | me-central-1 | 否 | 
| 南美洲 (聖保羅) | sa-east-1 | 否 | 
| AWS GovCloud （美國東部） | us-gov-east-1 | 否 | 
| AWS GovCloud （美國西部） | us-gov-west-1 | 否 | 

# AWS Amazon CodeCatalyst 的 受管政策
<a name="security-iam-awsmanpol"></a>





 AWS 受管政策是由 AWS AWS 受管政策建立和管理的獨立政策旨在為許多常用案例提供許可，以便您可以開始將許可指派給使用者、群組和角色。

請記住， AWS 受管政策可能不會授予特定使用案例的最低權限許可，因為這些許可可供所有 AWS 客戶使用。我們建議您定義特定於使用案例的[客戶管理政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies)，以便進一步減少許可。

您無法變更 AWS 受管政策中定義的許可。如果 AWS 更新受 AWS 管政策中定義的許可，則更新會影響政策連接的所有委託人身分 （使用者、群組和角色）。 AWS 服務 當新的 啟動或新的 API 操作可用於現有服務時， AWS 最有可能更新 AWS 受管政策。

如需詳細資訊，請參閱 *IAM 使用者指南*中的 [AWS 受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)。













## AWS 受管政策： AmazonCodeCatalystSupportAccess
<a name="security-iam-awsmanpol-AmazonCodeCatalystSupportAccess"></a>





這是授予所有空間管理員和空間成員使用與空間帳單帳戶相關聯之商業或企業高級支援計劃的許可的政策。這些許可允許空間管理員和成員針對他們在 CodeCatalyst 許可政策中擁有許可的資源，利用進階支援計劃。



**許可詳細資訊**

此政策包含以下許可。




+ `support` – 准許使用者搜尋、建立和解決 AWS 支援案例。同時授予描述通訊、嚴重性等級、附件和相關支援案例詳細資訊的許可。



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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "support:DescribeAttachment",
        "support:DescribeCaseAttributes",
        "support:DescribeCases",
        "support:DescribeCommunications",
        "support:DescribeIssueTypes",
        "support:DescribeServices",
        "support:DescribeSeverityLevels",
        "support:DescribeSupportLevel",
        "support:SearchForCases",
        "support:AddAttachmentsToSet",
        "support:AddCommunicationToCase",
        "support:CreateCase",
        "support:InitiateCallForCase",
        "support:InitiateChatForCase",
        "support:PutCaseAttributes",
        "support:RateCaseCommunication",
        "support:ResolveCase"
      ],
      "Resource": "*"
    }
  ]
}
```

------

## AWS 受管政策： AmazonCodeCatalystFullAccess
<a name="security-iam-awsmanpol-AmazonCodeCatalystFullAccess"></a>





這是授予許可的政策，以管理 Amazon CodeCatalyst Spaces 頁面中的 CodeCatalyst 空間和連線帳戶 AWS 管理主控台。此應用程式用於設定 AWS 帳戶 連接到 CodeCatalyst 中您的空間。



**許可詳細資訊**

此政策包含以下許可。




+ `codecatalyst` – 授予 中 Amazon CodeCatalyst Spaces 頁面的完整許可 AWS 管理主控台。



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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CodeCatalystResourceAccess",
            "Effect": "Allow",
            "Action": [
                "codecatalyst:*",
                "iam:ListRoles"
            ],
            "Resource": "*"
        },
        {
            "Sid": "CodeCatalystAssociateIAMRole",
            "Effect": "Allow",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": [
                        "codecatalyst.amazonaws.com",
                        "codecatalyst-runner.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

## AWS 受管政策： AmazonCodeCatalystReadOnlyAccess
<a name="security-iam-awsmanpol-AmazonCodeCatalystReadOnlyAccess"></a>





這是一個政策，授予在 的 Amazon CodeCatalyst Spaces 頁面中檢視和列出空間和連線帳戶資訊的許可 AWS 管理主控台。此應用程式用於設定 AWS 帳戶 連接到 CodeCatalyst 中您的空間。



**許可詳細資訊**

此政策包含以下許可。




+ `codecatalyst` – 授予 中 Amazon CodeCatalyst Spaces 頁面的唯讀許可 AWS 管理主控台。



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

****  

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

------

## AWS 受管政策： AmazonCodeCatalystServiceRoleForIdentityCenterApplicationSynchronizationPolicy
<a name="security-iam-awsmanpol-AmazonCodeCatalystServiceRoleForIdentityCenterApplicationSynchronizationPolicy"></a>



您無法將 AmazonCodeCatalystServiceRoleForIdentityCenterApplicationSynchronizationPolicy； 連接至您的 IAM 實體。此政策會連接到服務連結角色，允許 CodeCatalyst 代表您執行動作。如需詳細資訊，請參閱[使用 CodeCatalyst 的服務連結角色](using-service-linked-roles.md)。



此政策可讓客戶在 CodeCatalyst 中管理空間時，檢視應用程式執行個體描述檔和相關聯的目錄使用者和群組。客戶在管理支援聯合身分和 SSO 使用者和群組的空間時，將檢視這些資源。



**許可詳細資訊**

此政策包含以下許可。




+ `sso` – 准許使用者檢視在 CodeCatalyst 中針對關聯空間在 IAM Identity Center 中管理的應用程式執行個體描述檔。



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

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Sid": "AmazonCodeCatalystServiceRoleForIdentityCenterApplicationSynchronizationPolicy",
			"Effect": "Allow",
			"Action": [
				"sso:ListInstances",
				"sso:ListApplications",
				"sso:ListApplicationAssignments",
				"sso:DescribeInstance",
				"sso:DescribeApplication"
			],
			"Resource": "*"
		}
	]
}
```

------

## CodeCatalyst 受 AWS 管政策的更新
<a name="security-iam-awsmanpol-updates"></a>



檢視自此服務開始追蹤這些變更以來CodeCatalyst AWS 受管政策更新的詳細資訊。如需此頁面變更的自動提醒，請訂閱 CodeCatalyst [文件歷史記錄](doc-history.md)頁面上的 RSS 摘要。




| 變更 | 描述 | Date | 
| --- | --- | --- | 
|  [AmazonCodeCatalystServiceRoleForIdentityCenterApplicationSynchronizationPolicy](#security-iam-awsmanpol-AmazonCodeCatalystServiceRoleForIdentityCenterApplicationSynchronizationPolicy) – 新政策  |  CodeCatalyst 新增政策。 准許 CodeCatalyst 使用者檢視應用程式執行個體描述檔，以及相關聯的目錄使用者和群組。  | 2023 年 11 月 17 日 | 
|  [AmazonCodeCatalystSupportAccess](#security-iam-awsmanpol-AmazonCodeCatalystSupportAccess) – 新政策  |  CodeCatalyst 新增政策。 准許 CodeCatalyst 使用者搜尋、建立和解決支援案例，以及檢視相關的通訊和詳細資訊。  | 2023 年 4 月 20 日 | 
|  [AmazonCodeCatalystFullAccess](#security-iam-awsmanpol-AmazonCodeCatalystFullAccess) – 新政策  |  CodeCatalyst 新增政策。 授予 CodeCatalyst 的完整存取權。  | 2023 年 4 月 20 日 | 
|  [AmazonCodeCatalystReadOnlyAccess](#security-iam-awsmanpol-AmazonCodeCatalystReadOnlyAccess) – 新政策  |  CodeCatalyst 新增政策。 授予 CodeCatalyst 的唯讀存取權。  | 2023 年 4 月 20 日 | 
|  CodeCatalyst 開始追蹤變更  |  CodeCatalyst 開始追蹤其 AWS 受管政策的變更。  | 2023 年 4 月 20 日 | 



# 使用 IAM 角色授予專案 AWS 資源的存取權
<a name="ipa-iam-roles"></a>

CodeCatalyst 可以透過 AWS 帳戶 將您的 連接到 CodeCatalyst 空間來存取 AWS 資源。然後，您可以建立下列服務角色，並在連接帳戶時建立關聯。

如需有關您在 JSON 政策中使用的元素的詳細資訊，請參閱《[IAM 使用者指南》中的 IAM JSON 政策元素參考](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html)。 **
+ 若要存取 CodeCatalyst 專案和工作流程 AWS 帳戶 的 中的資源，您必須先授予 CodeCatalyst 代表您存取這些資源的許可。若要這樣做，您必須在 CodeCatalyst 可代表空間中的使用者和專案擔任 AWS 帳戶 的連線 中建立服務角色。您可以選擇建立和使用**CodeCatalystWorkflowDevelopmentRole-*spaceName***服務角色，也可以建立自訂服務角色，並手動設定這些 IAM 政策和角色。最佳實務是將這些角色指派到所需的最低許可量。
**注意**  
對於自訂服務角色，需要 CodeCatalyst 服務主體。如需 CodeCatalyst 服務主體和信任模型的詳細資訊，請參閱 [了解 CodeCatalyst 信任模型](trust-model.md)。
+ 若要透過連線來管理空間的支援 AWS 帳戶，您可以選擇建立和使用允許 CodeCatalyst 使用者存取支援**AWSRoleForCodeCatalystSupport**的服務角色。如需 CodeCatalyst 空間支援的詳細資訊，請參閱 [支援 for Amazon CodeCatalyst](support.md)。



## 了解 **CodeCatalystWorkflowDevelopmentRole-*spaceName*** 服務角色
<a name="ipa-iam-roles-service-role"></a>

您可以為空間新增 IAM 角色，讓 CodeCatalyst 用來建立和存取已連線的資源 AWS 帳戶。這稱為[服務角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-role)。建立服務角色最簡單的方法是在建立空間時新增服務角色，並選擇該角色**CodeCatalystWorkflowDevelopmentRole-*spaceName***的選項。這不僅會建立已`AdministratorAccess`連接 的服務角色，還會建立信任政策，以允許 CodeCatalyst 代表空間中專案中的使用者擔任該角色。服務角色的範圍是空間，而不是個別專案。若要建立角色，請參閱[為您的帳戶和空間建立 **CodeCatalystWorkflowDevelopmentRole-*spaceName***角色](#ipa-iam-roles-service-create)。每個帳戶中的每個空間只能建立一個角色。

**注意**  
此角色僅建議與開發帳戶搭配使用，並使用 `AdministratorAccess` AWS 受管政策，讓它能夠完整存取以在此中建立新的政策和資源 AWS 帳戶。

連接到**CodeCatalystWorkflowDevelopmentRole-*spaceName***角色的政策旨在使用空間中以藍圖建立的專案。它可讓這些專案中的使用者使用連線中的資源來開發、建置、測試和部署程式碼 AWS 帳戶。如需詳細資訊，請參閱[為 AWS 服務建立角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)。

連接到**CodeCatalystWorkflowDevelopmentRole-*spaceName***角色的政策是其中的 `AdministratorAccess` 受管政策 AWS。這是授予所有 AWS 動作和資源完整存取權的政策。若要在 IAM 主控台中檢視 JSON 政策文件，請參閱 [AdministratorAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AdministratorAccess)。

下列信任政策允許 CodeCatalyst 擔任該**CodeCatalystWorkflowDevelopmentRole-*spaceName***角色。如需 CodeCatalyst 信任模型的詳細資訊，請參閱 [了解 CodeCatalyst 信任模型](trust-model.md)。

```
"Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
             "Principal": { 
                "Service": [ 
                    "codecatalyst-runner.amazonaws.com",
                    "codecatalyst.amazonaws.com" 
                ] 
            }, 
            "Action": "sts:AssumeRole",
            "Condition": {
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:codecatalyst:::space/spaceId/project/*"
                }
            }
        }
    ]
```

## 為您的帳戶和空間建立 **CodeCatalystWorkflowDevelopmentRole-*spaceName***角色
<a name="ipa-iam-roles-service-create"></a>

請依照下列步驟，建立將用於空間中工作流程的 `CodeCatalystWorkflowDevelopmentRole-spaceName`角色。對於您想要在專案中使用 IAM 角色的每個帳戶，您必須新增角色，例如開發人員角色。

開始之前，您必須擁有 的管理權限， AWS 帳戶 或能夠與您的管理員搭配使用。如需如何在 CodeCatalyst 中使用 AWS 帳戶 和 IAM 角色的詳細資訊，請參閱 [允許存取已連線 AWS 的資源 AWS 帳戶](ipa-connect-account.md)。

**建立和新增 CodeCatalyst **CodeCatalystWorkflowDevelopmentRole-*spaceName*****

1. 在 CodeCatalyst 主控台中開始之前，請開啟 AWS 管理主控台，然後確定您的 AWS 帳戶 空間使用相同的 登入。

1. 在 https：//[https://codecatalyst.aws/](https://codecatalyst.aws/) 開啟 CodeCatalyst 主控台。

1. 導覽至 CodeCatalyst 空間。選擇 **Settings (設定)**，然後選擇 **AWS 帳戶**。

1. 選擇您要建立角色之 AWS 帳戶 的連結。**AWS 帳戶 詳細資訊**頁面隨即顯示。

1. 選擇**從中管理角色 AWS 管理主控台**。

   在 中開啟**將 IAM 角色新增至 Amazon CodeCatalyst 空間**頁面 AWS 管理主控台。這是 **Amazon CodeCatalyst 空格**頁面。您可能需要登入才能存取頁面。

1. 選擇在 **IAM 中建立 CodeCatalyst 開發管理員角色**。此選項會建立服務角色，其中包含開發角色的許可政策和信任政策。角色會有名稱 `CodeCatalystWorkflowDevelopmentRole-spaceName`。如需角色和角色政策的詳細資訊，請參閱 [了解 **CodeCatalystWorkflowDevelopmentRole-*spaceName*** 服務角色](#ipa-iam-roles-service-role)。
**注意**  
此角色僅建議與開發人員帳戶搭配使用，並使用 `AdministratorAccess` AWS 受管政策，讓它能夠完整存取以在此中建立新的政策和資源 AWS 帳戶。

1. 選擇**建立開發角色**。

1. 在連線頁面的 ** CodeCatalyst 可用的 IAM 角色**下，檢視新增至您帳戶的 IAM 角色`CodeCatalystWorkflowDevelopmentRole-spaceName`清單中的角色。

1. 若要返回您的空間，請選擇**前往 Amazon CodeCatalyst**。

## 了解 **AWSRoleForCodeCatalystSupport** 服務角色
<a name="ipa-iam-roles-support-role"></a>

您可以為空間新增 IAM 角色，讓空間中的 CodeCatalyst 使用者可用來建立和存取支援案例。這稱為支援[的服務角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-role)。建立支援的服務角色最簡單方法是在建立空間時新增服務角色，並選擇該角色`AWSRoleForCodeCatalystSupport`的選項。這不僅會建立政策和角色，也會建立信任政策，允許 CodeCatalyst 代表空間中專案中的使用者擔任角色。服務角色的範圍是空間，而不是個別專案。若要建立角色，請參閱[為您的帳戶和空間建立 **AWSRoleForCodeCatalystSupport**角色](#ipa-iam-roles-support-create)。

連接至`AWSRoleForCodeCatalystSupport`角色的政策是 受管政策，可提供支援許可的存取權。如需詳細資訊，請參閱[AWS 受管政策： AmazonCodeCatalystSupportAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonCodeCatalystSupportAccess)。

政策的信任角色允許 CodeCatalyst 擔任該角色。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "codecatalyst.amazonaws.com",
                    "codecatalyst-runner.amazonaws.com"
                ]
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

------

## 為您的帳戶和空間建立 **AWSRoleForCodeCatalystSupport**角色
<a name="ipa-iam-roles-support-create"></a>

請依照下列步驟，建立將用於空間中支援案例`AWSRoleForCodeCatalystSupport`的角色。角色必須新增至空間的指定帳單帳戶。

開始之前，您必須擁有 的管理權限， AWS 帳戶 或能夠與您的管理員搭配使用。如需如何在 CodeCatalyst 中使用 AWS 帳戶 和 IAM 角色的詳細資訊，請參閱 [允許存取已連線 AWS 的資源 AWS 帳戶](ipa-connect-account.md)。

**建立和新增 CodeCatalyst **AWSRoleForCodeCatalystSupport****

1. 在 CodeCatalyst 主控台中開始之前，請開啟 AWS 管理主控台，然後確定您的 AWS 帳戶 空間使用相同的 登入。

1. 導覽至 CodeCatalyst 空間。選擇 **Settings (設定)**，然後選擇 **AWS 帳戶**。

1. 選擇您要建立角色之 AWS 帳戶 的連結。**AWS 帳戶 詳細資訊**頁面隨即顯示。

1. 選擇**從中管理角色 AWS 管理主控台**。

   在 中開啟**將 IAM 角色新增至 Amazon CodeCatalyst 空間**頁面 AWS 管理主控台。這是 **Amazon CodeCatalyst Spaces** 頁面。您可能需要登入才能存取頁面。

1. 在 **CodeCatalyst 空間詳細資訊**下，選擇**新增 CodeCatalyst Support 角色**。此選項會建立服務角色，其中包含預覽開發角色的許可政策和信任政策。角色會有附加**AWSRoleForCodeCatalystSupport**唯一識別符的名稱。如需角色和角色政策的詳細資訊，請參閱 [了解 **AWSRoleForCodeCatalystSupport** 服務角色](#ipa-iam-roles-support-role)。

1. 在**新增 CodeCatalyst Support 角色**頁面上，保持選取預設值，然後選擇**建立角色**。

1. 在 ** CodeCatalyst 可用的 IAM 角色**下，檢視新增至您帳戶的 IAM 角色`CodeCatalystWorkflowDevelopmentRole-spaceName`清單中的角色。

1. 若要返回您的空間，請選擇**前往 Amazon CodeCatalyst**。

## 在 CodeCatalyst 中設定工作流程動作的 IAM 角色
<a name="ipa-iam-roles-policies"></a>

本節詳細說明您可以建立以搭配 CodeCatalyst 帳戶使用的 IAM 角色和政策。如需建立範例角色的說明，請參閱 [為工作流程動作手動建立角色](#ipa-iam-roles-actions)。建立 IAM 角色後，請複製角色 ARN，將 IAM 角色新增至您的帳戶連線，並將其與您的專案環境建立關聯。如需詳細資訊，請參閱 [新增 IAM 角色至帳戶連線](ipa-connect-account-addroles.md)。

### Amazon S3 存取的 CodeCatalyst 建置角色
<a name="ipa-iam-rolepolicy-BuildRoleS3"></a>

對於 CodeCatalyst 工作流程建置動作，您可以使用預設**CodeCatalystWorkflowDevelopmentRole-*spaceName***服務角色，也可以建立名為 **CodeCatalystBuildRoleforS3Access** 的 IAM 角色。此角色使用具有 CodeCatalyst 在 CloudFormation 資源上執行任務所需的範圍許可的政策 AWS 帳戶。

此角色提供執行下列動作的許可：
+ 寫入 Amazon S3 儲存貯體。
+ 支援使用 建置 資源 CloudFormation。這需要 Amazon S3 存取。

此角色使用以下政策：

**注意**  
第一次使用該角色執行工作流程動作時，請在資源政策陳述式中使用萬用字元，然後在資源名稱可用之後縮小政策的範圍。  

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

### 的 CodeCatalyst 建置角色 CloudFormation
<a name="ipa-iam-rolepolicy-BuildRoleCloudFormation"></a>

對於 CodeCatalyst 工作流程建置動作，您可以使用預設**CodeCatalystWorkflowDevelopmentRole-*spaceName***服務角色，也可以建立具有必要許可的 IAM 角色。此角色使用具有 CodeCatalyst 在 CloudFormation 資源上執行任務所需的範圍許可的政策 AWS 帳戶。

此角色提供執行下列動作的許可：
+ 支援使用 建置 資源 CloudFormation。這是 Amazon S3 存取的 CodeCatalyst 建置角色和 CodeCatalyst 部署角色的必要項目 CloudFormation。

下列 AWS 受管政策應連接至此角色：
+ **AWSCloudFormationFullAccess**
+ **IAMFullAccess**
+ **AmazonS3FullAccess**
+ **AmazonAPIGatewayAdministrator**
+ **AWSLambdaFullAccess**

### CDK 的 CodeCatalyst 建置角色
<a name="ipa-iam-rolepolicy-BuildRoleCDK"></a>

對於執行 CDK 組建動作的 CodeCatalyst 工作流程，例如現代三層 Web 應用程式，您可以使用預設**CodeCatalystWorkflowDevelopmentRole-*spaceName***服務角色，也可以建立具有必要許可的 IAM 角色。此角色使用具有 CodeCatalyst 為 中的 CloudFormation 資源引導和執行 CDK 建置命令所需範圍許可的政策 AWS 帳戶。

此角色提供執行下列動作的許可：
+ 寫入 Amazon S3 儲存貯體。
+ 支援建置 CDK 建構 CloudFormation 和資源堆疊。這需要存取用於成品儲存的 Amazon S3、用於映像儲存庫支援的 Amazon ECR，以及用於虛擬執行個體的系統管理和監控的 SSM。

此角色使用以下政策：

**注意**  
第一次使用該角色執行工作流程動作時，請在資源政策陳述式中使用萬用字元，然後在資源名稱可用後縮小政策範圍。  

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

### 的 CodeCatalyst 部署角色 CloudFormation
<a name="ipa-iam-rolepolicy-DeployCloudFormation"></a>

對於使用 的 CodeCatalyst 工作流程部署動作 CloudFormation，您可以使用預設**CodeCatalystWorkflowDevelopmentRole-*spaceName***服務角色，或者您可以使用具有 CodeCatalyst 在 CloudFormation 資源上執行任務所需的範圍許可的政策 AWS 帳戶。

此角色提供執行下列動作的許可：
+ 允許 CodeCatalyst 叫用 Λ 函數，透過 執行藍/綠部署 CloudFormation。
+ 允許 CodeCatalyst 在其中建立和更新堆疊和變更集 CloudFormation。

此角色使用以下政策：

```
{"Action": [
        "cloudformation:CreateStack",
        "cloudformation:DeleteStack",
        "cloudformation:Describe*",
        "cloudformation:UpdateStack",
        "cloudformation:CreateChangeSet",
        "cloudformation:DeleteChangeSet",
        "cloudformation:ExecuteChangeSet",
        "cloudformation:SetStackPolicy",
        "cloudformation:ValidateTemplate",
        "cloudformation:List*",
        "iam:PassRole"
    ],
    "Resource": "resource_ARN",
    "Effect": "Allow"
}
```

**注意**  
第一次使用該角色執行工作流程動作時，請在資源政策陳述式中使用萬用字元，然後在資源名稱可用後縮小政策範圍。  

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

### Amazon EC2 的 CodeCatalyst 部署角色
<a name="ipa-iam-rolepolicy-DeployEC2"></a>

CodeCatalyst 工作流程部署動作使用具有必要許可的 IAM 角色。此角色使用具有 CodeCatalyst 在 Amazon EC2 資源上執行任務所需的範圍許可的政策 AWS 帳戶。**CodeCatalystWorkflowDevelopmentRole-*spaceName*** 角色的預設政策不包含 Amazon EC2 或 Amazon EC2 Auto Scaling 的許可。

此角色提供執行下列動作的許可：
+ 建立 Amazon EC2 部署。
+ 讀取執行個體上的標籤，或依 Auto Scaling 群組名稱識別 Amazon EC2 執行個體。
+ 讀取、建立、更新和刪除 Amazon EC2 Auto Scaling 群組、生命週期關聯和擴展政策。
+ 將資訊發佈至 Amazon SNS 主題。
+ 擷取 CloudWatch 警示的相關資訊。
+ 讀取和更新 Elastic Load Balancing。

此角色使用以下政策：

**注意**  
第一次使用該角色執行工作流程動作時，請在資源政策陳述式中使用萬用字元，然後在資源名稱可用後縮小政策範圍。  

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

### Amazon ECS 的 CodeCatalyst 部署角色
<a name="ipa-iam-rolepolicy-DeployECS"></a>

對於 CodeCatalyst 工作流程動作，您可以建立具有必要許可的 IAM 角色。您可以使用預設**CodeCatalystWorkflowDevelopmentRole-*spaceName***服務角色，也可以為 CodeCatalyst 部署動作建立 IAM 角色，以用於 Lambda 部署。此角色使用具有 CodeCatalyst 在 Amazon ECS 資源上執行任務所需的範圍許可的政策 AWS 帳戶。

此角色提供執行下列動作的許可：
+ 在 CodeCatalyst 連線中指定的帳戶中，代表 CodeCatalyst 使用者啟動滾動 Amazon ECS 部署。
+ 讀取、更新和刪除 Amazon ECS 任務集。
+ 更新 Elastic Load Balancing 目標群組、接聽程式和規則。
+ 叫用 Lambda 函數。
+ 存取 Amazon S3 儲存貯體中的修訂檔案。
+ 擷取 CloudWatch 警示的相關資訊。
+ 將資訊發佈至 Amazon SNS 主題。

此角色使用以下政策：

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
    "Action":[
      "ecs:DescribeServices",
      "ecs:CreateTaskSet",
      "ecs:DeleteTaskSet",
      "ecs:ListClusters",
      "ecs:RegisterTaskDefinition",
      "ecs:UpdateServicePrimaryTaskSet",
      "ecs:UpdateService",
      "elasticloadbalancing:DescribeTargetGroups",
      "elasticloadbalancing:DescribeListeners",
      "elasticloadbalancing:ModifyListener",
      "elasticloadbalancing:DescribeRules",
      "elasticloadbalancing:ModifyRule",
      "lambda:InvokeFunction",
      "lambda:ListFunctions",
      "cloudwatch:DescribeAlarms",
      "sns:Publish",
      "sns:ListTopics", 
      "s3:GetObject",
      "s3:GetObjectVersion",
      "codedeploy:CreateApplication", 
      "codedeploy:CreateDeployment", 
      "codedeploy:CreateDeploymentGroup", 
      "codedeploy:GetApplication", 
      "codedeploy:GetDeployment", 
      "codedeploy:GetDeploymentGroup", 
      "codedeploy:ListApplications", 
      "codedeploy:ListDeploymentGroups", 
      "codedeploy:ListDeployments", 
      "codedeploy:StopDeployment", 
      "codedeploy:GetDeploymentTarget", 
      "codedeploy:ListDeploymentTargets", 
      "codedeploy:GetDeploymentConfig", 
      "codedeploy:GetApplicationRevision", 
      "codedeploy:RegisterApplicationRevision", 
      "codedeploy:BatchGetApplicationRevisions", 
      "codedeploy:BatchGetDeploymentGroups", 
      "codedeploy:BatchGetDeployments", 
      "codedeploy:BatchGetApplications", 
      "codedeploy:ListApplicationRevisions", 
      "codedeploy:ListDeploymentConfigs", 
      "codedeploy:ContinueDeployment"           
   ],
   "Resource":"*",
   "Effect":"Allow"
},{"Action":[
      "iam:PassRole"
   ],
   "Effect":"Allow",
   "Resource":"*",
   "Condition":{"StringLike":{"iam:PassedToService":[
            "ecs-tasks.amazonaws.com",
            "codedeploy.amazonaws.com"
         ]
      }
   }
}]
}
```

------

**注意**  
第一次使用該角色執行工作流程動作時，請在資源政策陳述式中使用萬用字元，然後在資源名稱可用後縮小政策範圍。  

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

### Lambda 的 CodeCatalyst 部署角色
<a name="ipa-iam-rolepolicy-DeployLambda"></a>

 對於 CodeCatalyst 工作流程動作，您可以建立具有必要許可的 IAM 角色。您可以使用預設**CodeCatalystWorkflowDevelopmentRole-*spaceName***服務角色，或為 CodeCatalyst 部署動作建立 IAM 角色，以用於 Lambda 部署。此角色使用具有 CodeCatalyst 在 Lambda 資源上執行任務所需的範圍許可的政策 AWS 帳戶。

此角色提供執行下列動作的許可：
+ 讀取、更新和叫用 Lambda 函數和別名。
+ 存取 Amazon S3 儲存貯體中的修訂檔案。
+ 擷取 CloudWatch Events 警示的相關資訊。
+ 將資訊發佈至 Amazon SNS 主題。

此角色使用以下政策：

**注意**  
第一次使用該角色執行工作流程動作時，請在資源政策陳述式中使用萬用字元，然後在資源名稱可用後縮小政策範圍。  

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

### Lambda 的 CodeCatalyst 部署角色
<a name="ipa-iam-rolepolicy-DeployLambda"></a>

對於 CodeCatalyst 工作流程動作，您可以使用預設**CodeCatalystWorkflowDevelopmentRole-*spaceName***服務角色，也可以建立具有必要許可的 IAM 角色。此角色使用具有 CodeCatalyst 在 Lambda 資源上執行任務所需的範圍許可的政策 AWS 帳戶。

此角色提供執行下列動作的許可：
+ 讀取、更新和叫用 Lambda 函數和別名。
+ 存取 Amazon S3 儲存貯體中的修訂檔案。
+ 擷取 CloudWatch 警示的相關資訊。
+ 將資訊發佈至 Amazon SNS 主題。

此角色使用以下政策：

**注意**  
第一次使用該角色執行工作流程動作時，請在資源政策陳述式中使用萬用字元，然後在資源名稱可用後縮小政策範圍。  

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

### 的 CodeCatalyst 部署角色 AWS SAM
<a name="ipa-iam-rolepolicy-DeploySAM"></a>

對於 CodeCatalyst 工作流程動作，您可以使用預設**CodeCatalystWorkflowDevelopmentRole-*spaceName***服務角色，也可以建立具有必要許可的 IAM 角色。此角色使用具有 CodeCatalyst 在 AWS SAM 和 CloudFormation 資源上執行任務所需的範圍許可的政策 AWS 帳戶。

此角色提供執行下列動作的許可：
+ 允許 CodeCatalyst 調用 Lambda 函數來執行無伺服器和 AWS SAM CLI 應用程式的部署。
+ 允許 CodeCatalyst 在其中建立和更新堆疊和變更集 CloudFormation。

此角色使用以下政策：

**注意**  
第一次使用該角色執行工作流程動作時，請在資源政策陳述式中使用萬用字元，然後在資源名稱可用後縮小政策範圍。  

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

### Amazon EC2 的 CodeCatalyst 唯讀角色
<a name="ipa-iam-rolepolicy-ReadOnlyEC2"></a>

對於 CodeCatalyst 工作流程動作，您可以建立具有必要許可的 IAM 角色。此角色使用具有 CodeCatalyst 在 Amazon EC2 資源上執行任務所需的範圍許可的政策 AWS 帳戶。**CodeCatalystWorkflowDevelopmentRole-*spaceName*** 服務角色不包含 Amazon EC2 的許可或 Amazon CloudWatch 的描述動作。

此角色提供執行下列動作的許可：
+ 取得 Amazon EC2 執行個體的狀態。
+ 取得 Amazon EC2 執行個體的 CloudWatch 指標。

此角色使用以下政策：

**注意**  
第一次使用該角色執行工作流程動作時，請在資源政策陳述式中使用萬用字元，然後在資源名稱可用後縮小政策範圍。  

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

### Amazon ECS 的 CodeCatalyst 唯讀角色
<a name="ipa-iam-rolepolicy-ReadOnlyECS"></a>

對於 CodeCatalyst 工作流程動作，您可以建立具有必要許可的 IAM 角色。此角色使用具有 CodeCatalyst 在 Amazon ECS 資源上執行任務所需的範圍許可的政策 AWS 帳戶。

此角色提供執行下列動作的許可：
+ 讀取 Amazon ECS 任務集。
+ 擷取 CloudWatch 警示的相關資訊。

此角色使用以下政策：

**注意**  
第一次使用該角色執行工作流程動作時，請在資源政策陳述式中使用萬用字元，然後在資源名稱可用後縮小政策範圍。  

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

### Lambda 的 CodeCatalyst 唯讀角色
<a name="ipa-iam-rolepolicy-ReadOnlyLambda"></a>

對於 CodeCatalyst 工作流程動作，您可以建立具有必要許可的 IAM 角色。此角色使用具有 CodeCatalyst 在 Lambda 資源上執行任務所需的範圍許可的政策 AWS 帳戶。

此角色提供下列許可：
+  讀取 Lambda 函數和別名。
+ 存取 Amazon S3 儲存貯體中的修訂檔案。
+ 擷取 CloudWatch 警示的相關資訊。

此角色使用下列 政策。

**注意**  
第一次使用該角色執行工作流程動作時，請在資源政策陳述式中使用萬用字元，然後在資源名稱可用之後縮小政策的範圍。  

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

## 為工作流程動作手動建立角色
<a name="ipa-iam-roles-actions"></a>

CodeCatalyst 工作流程動作使用您建立的 IAM 角色，稱為**建置角色**、**部署角色**和**堆疊角色**。

請依照下列步驟，在 IAM 中建立這些角色。

**建立部署角色**

1. 建立角色的政策，如下所示：

   1. 登入 AWS。

   1. 前往 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

   1. 在導覽窗格中，選擇**政策**。

   1. 選擇 **Create policy** (建立政策)。

   1. 請選擇 **JSON** 標籤。

   1. 刪除現有的程式碼。

   1. 貼上以下程式碼：
**注意**  
第一次使用該角色執行工作流程動作時，請在資源政策陳述式中使用萬用字元，然後在資源名稱可用之後縮小政策的範圍。  

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

   1. 選擇下**一步：標籤**。

   1. 選擇下**一步：檢閱**。

   1. 在**名稱**中，輸入：

      ```
      codecatalyst-deploy-policy
      ```

   1. 選擇**建立政策**。

      您現在已建立許可政策。

1. 建立部署角色，如下所示：

   1. 在導覽窗格中，選擇**角色**，然後選擇**建立角色**。

   1. 選擇**自訂信任政策**。

   1. 刪除現有的自訂信任政策。

   1. 新增下列自訂信任政策：

   1. 選擇**下一步**。

   1. 在**許可政策**中，搜尋`codecatalyst-deploy-policy`並選取其核取方塊。

   1. 選擇**下一步**。

   1. 針對**角色名稱**，輸入：

      ```
      codecatalyst-deploy-role
      ```

   1. 針對**角色描述**，輸入：

      ```
      CodeCatalyst deploy role
      ```

   1. 選擇建**立角色**。

   您現在已建立具有信任政策和許可政策的部署角色。

1. 取得部署角色 ARN，如下所示：

   1. 在導覽窗格中，選擇**角色**。

   1. 在搜尋方塊中，輸入您剛建立的角色名稱 (`codecatalyst-deploy-role`)。

   1. 從清單中選擇角色。

      角色的**摘要**頁面隨即出現。

   1. 在頂端複製 **ARN** 值。

   您現在已建立具有適當許可的部署角色，並取得其 ARN。

**建立建置角色**

1. 建立角色的政策，如下所示：

   1. 登入 AWS。

   1. 前往 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

   1. 在導覽窗格中，選擇**政策**。

   1. 選擇 **Create policy** (建立政策)。

   1. 請選擇 **JSON** 標籤。

   1. 刪除現有的程式碼。

   1. 貼上以下程式碼：
**注意**  
第一次使用該角色執行工作流程動作時，請在資源政策陳述式中使用萬用字元，然後在資源名稱可用之後縮小政策的範圍。  

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

   1. 選擇下**一步：標籤**。

   1. 選擇下**一步：檢閱**。

   1. 在**名稱**中，輸入：

      ```
      codecatalyst-build-policy
      ```

   1. 選擇**建立政策**。

      您現在已建立許可政策。

1. 建立建置角色，如下所示：

   1. 在導覽窗格中，選擇**角色**，然後選擇**建立角色**。

   1. 選擇**自訂信任政策**。

   1. 刪除現有的自訂信任政策。

   1. 新增下列自訂信任政策：

   1. 選擇**下一步**。

   1. 在**許可政策**中，搜尋`codecatalyst-build-policy`並選取其核取方塊。

   1. 選擇**下一步**。

   1. 針對**角色名稱**，輸入：

      ```
      codecatalyst-build-role
      ```

   1. 針對**角色描述**，輸入：

      ```
      CodeCatalyst build role
      ```

   1. 選擇建**立角色**。

   您現在已建立具有信任政策和許可政策的建置角色。

1. 取得建置角色 ARN，如下所示：

   1. 在導覽窗格中，選擇**角色**。

   1. 在搜尋方塊中，輸入您剛建立的角色名稱 (`codecatalyst-build-role`)。

   1. 從清單中選擇角色。

      角色的**摘要**頁面隨即出現。

   1. 在頂端複製 **ARN** 值。

   您現在已建立具有適當許可的建置角色，並取得其 ARN。

**建立堆疊角色**
**注意**  
您不需要建立堆疊角色，但基於安全考量，建議您這麼做。如果您未建立堆疊角色，則需要將此程序中進一步描述的許可政策新增至部署角色。

1.  AWS 使用您要部署堆疊的帳戶登入 。

1. 前往 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 在導覽窗格中，選擇**角色**。然後選擇**建立角色**。

1. 在頂端，選擇 **AWS 服務**。

1. 從服務清單中，選擇 **CloudFormation**。

1. 選擇**下一步：許可**。

1. 在搜尋方塊中，新增存取堆疊中資源所需的任何政策。例如，如果您的堆疊包含 AWS Lambda 函數，您需要新增授予 Lambda 存取權的政策。
**提示**  
如果您不確定要新增哪些政策，您現在可以省略它們。當您測試動作時，如果您沒有正確的許可， CloudFormation 會產生錯誤，顯示您需要新增哪些許可。

1. 選擇下**一步：標籤**。

1. 選擇下**一步：檢閱**。

1. 針對**角色名稱**，輸入：

   ```
   codecatalyst-stack-role
   ```

1. 選擇建**立角色**。

1. 若要取得堆疊角色的 ARN，請執行下列動作：

   1. 在導覽窗格中，選擇**角色**。

   1. 在搜尋方塊中，輸入您剛建立的角色名稱 (`codecatalyst-stack-role`)。

   1. 從清單中選擇角色。

   1. 在**摘要**頁面上，複製**角色 ARN** 值。

## 使用 AWS CloudFormation 在 IAM 中建立政策和角色
<a name="ipa-iam-roles-cfn"></a>

您可以選擇建立和使用 AWS CloudFormation 範本，為 AWS 帳戶 CodeCatalyst 專案和工作流程在 中建立存取資源所需的政策和角色。 CloudFormation 是一項服務，可協助您建立和設定 AWS 資源的模型，讓您可以減少管理這些資源的時間，並有更多時間專注於執行所在的應用程式 AWS。如果您想要在多個 中建立角色 AWS 帳戶，建立範本可協助您更快速地執行此任務。

下列範例範本會建立部署動作角色和政策。

```
Parameters:
  CodeCatalystAccountId:
    Type: String
    Description: Account ID from the connections page
  ExternalId:
    Type: String
    Description: External ID from the connections page
Resources:
  CrossAccountRole:
    Type: 'AWS::IAM::Role'
    Properties:
      AssumeRolePolicyDocument:
        Version: "2012-10-17"		 	 	 
        Statement:
          - Effect: Allow
            Principal:
              AWS:
                - !Ref CodeCatalystAccountId
            Action:
              - 'sts:AssumeRole'
            Condition:
              StringEquals:
                sts:ExternalId: !Ref ExternalId
      Path: /
      Policies:
        - PolicyName: CodeCatalyst-CloudFormation-action-policy
          PolicyDocument:
            Version: "2012-10-17"		 	 	 
            Statement:
              - Effect: Allow
                Action:
                  - 'cloudformation:CreateStack'
                  - 'cloudformation:DeleteStack'
                  - 'cloudformation:Describe*'
                  - 'cloudformation:UpdateStack'
                  - 'cloudformation:CreateChangeSet'
                  - 'cloudformation:DeleteChangeSet'
                  - 'cloudformation:ExecuteChangeSet'
                  - 'cloudformation:SetStackPolicy'
                  - 'cloudformation:ValidateTemplate'
                  - 'cloudformation:List*'
                  - 'iam:PassRole'
                Resource: '*'
```

## 為 Web 應用程式藍圖手動建立角色
<a name="ipa-iam-roles-webapp-blueprint"></a>

CodeCatalyst Web 應用程式藍圖使用您建立的 IAM 角色，稱為 **CDK 的建置角色**、**部署角色**和**堆疊角色**。

請依照下列步驟，在 IAM 中建立角色。

**建立建置角色**

1. 建立角色的政策，如下所示：

   1. 登入 AWS。

   1. 前往 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

   1. 在導覽窗格中，選擇**政策**。

   1. 選擇**建立政策**。

   1. 請選擇 **JSON** 標籤。

   1. 刪除現有的程式碼。

   1. 貼上以下程式碼：
**注意**  
第一次使用該角色執行工作流程動作時，請在資源政策陳述式中使用萬用字元，然後在資源名稱可用之後縮小政策的範圍。  

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

   1. 選擇下**一步：標籤**。

   1. 選擇下**一步：檢閱**。

   1. 在**名稱**中，輸入：

      ```
      codecatalyst-webapp-build-policy
      ```

   1. 選擇**建立政策**。

      您現在已建立許可政策。

1. 建立建置角色，如下所示：

   1. 在導覽窗格中，選擇**角色**，然後選擇**建立角色**。

   1. 選擇**自訂信任政策**。

   1. 刪除現有的自訂信任政策。

   1. 新增下列自訂信任政策：

   1. 選擇**下一步**。

   1. 將許可政策連接至建置角色。在**新增許可**頁面的**許可政策**區段中，搜尋`codecatalyst-webapp-build-policy`並選取其核取方塊。

   1. 選擇**下一步**。

   1. 針對**角色名稱**，輸入：

      ```
      codecatalyst-webapp-build-role
      ```

   1. 針對**角色描述**，輸入：

      ```
      CodeCatalyst Web app build role
      ```

   1. 選擇建**立角色**。

   您現在已建立具有信任政策和許可政策的建置角色。

1. 將許可政策連接至建置角色，如下所示：

   1. 在導覽窗格中，選擇**角色**，然後搜尋 `codecatalyst-webapp-build-role`。``

   1. 選擇 `codecatalyst-webapp-build-role`以顯示其詳細資訊。``

   1. 在**許可**索引標籤中，選擇**新增許可**，然後選擇**連接政策**。

   1. 搜尋 `codecatalyst-webapp-build-policy`，選取其核取方塊，然後選擇**連接政策**。

      您現在已將許可政策連接至建置角色。建置角色現在有兩個政策：許可政策和信任政策。

1. 取得建置角色 ARN，如下所示：

   1. 在導覽窗格中，選擇**角色**。

   1. 在搜尋方塊中，輸入您剛建立的角色名稱 (`codecatalyst-webapp-build-role`)。

   1. 從清單中選擇角色。

      角色的**摘要**頁面隨即出現。

   1. 在頂端複製 **ARN** 值。

   您現在已建立具有適當許可的建置角色，並取得其 ARN。

## 為 SAM 藍圖手動建立角色
<a name="ipa-iam-roles-SAM-blueprint"></a>

CodeCatalyst SAM 藍圖使用您建立的 IAM 角色，稱為 ** CloudFormation 的建置角色**和 **SAM 的部署角色**。

請依照下列步驟，在 IAM 中建立角色。

**為 CloudFormation 建立建置角色**

1. 建立角色的政策，如下所示：

   1. 登入 AWS。

   1. 前往 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

   1. 在導覽窗格中，選擇**政策**。

   1. 選擇**建立政策**。

   1. 請選擇 **JSON** 標籤。

   1. 刪除現有的程式碼。

   1. 貼上以下程式碼：

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "s3:*",
                      "cloudformation:*"
                  ],
                  "Resource": "*"
              }
          ]
      }
      ```

------
**注意**  
第一次使用該角色執行工作流程動作時，請在資源政策陳述式中使用萬用字元，然後在資源名稱可用之後縮小政策的範圍。  

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

   1. 選擇下**一步：標籤**。

   1. 選擇下**一步：檢閱**。

   1. 在**名稱**中，輸入：

      ```
      codecatalyst-SAM-build-policy
      ```

   1. 選擇**建立政策**。

      您現在已建立許可政策。

1. 建立建置角色，如下所示：

   1. 在導覽窗格中，選擇**角色**，然後選擇**建立角色**。

   1. 選擇**自訂信任政策**。

   1. 刪除現有的自訂信任政策。

   1. 新增下列自訂信任政策：

   1. 選擇**下一步**。

   1. 將許可政策連接至建置角色。在**新增許可**頁面的**許可政策**區段中，搜尋`codecatalyst-SAM-build-policy`並選取其核取方塊。

   1. 選擇**下一步**。

   1. 針對**角色名稱**，輸入：

      ```
      codecatalyst-SAM-build-role
      ```

   1. 針對**角色描述**，輸入：

      ```
      CodeCatalyst SAM build role
      ```

   1. 選擇建**立角色**。

   您現在已建立具有信任政策和許可政策的建置角色。

1. 將許可政策連接至建置角色，如下所示：

   1. 在導覽窗格中，選擇**角色**，然後搜尋 `codecatalyst-SAM-build-role`。``

   1. 選擇 `codecatalyst-SAM-build-role`以顯示其詳細資訊。``

   1. 在**許可**索引標籤中，選擇**新增許可**，然後選擇**連接政策**。

   1. 搜尋 `codecatalyst-SAM-build-policy`，選取其核取方塊，然後選擇**連接政策**。

      您現在已將許可政策連接至建置角色。建置角色現在有兩個政策：許可政策和信任政策。

1. 取得建置角色 ARN，如下所示：

   1. 在導覽窗格中，選擇**角色**。

   1. 在搜尋方塊中，輸入您剛建立的角色名稱 (`codecatalyst-SAM-build-role`)。

   1. 從清單中選擇角色。

      角色的**摘要**頁面隨即出現。

   1. 在頂端複製 **ARN** 值。

   您現在已建立具有適當許可的建置角色，並取得其 ARN。

**為 SAM 建立部署角色**

1. 建立角色的政策，如下所示：

   1. 登入 AWS。

   1. 前往 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

   1. 在導覽窗格中，選擇**政策**。

   1. 選擇**建立政策**。

   1. 請選擇 **JSON** 標籤。

   1. 刪除現有的程式碼。

   1. 貼上以下程式碼：
**注意**  
第一次使用該角色執行工作流程動作時，請在資源政策陳述式中使用萬用字元，然後在資源名稱可用之後縮小政策的範圍。  

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

   1. 選擇下**一步：標籤**。

   1. 選擇下**一步：檢閱**。

   1. 在**名稱**中，輸入：

      ```
      codecatalyst-SAM-deploy-policy
      ```

   1. 選擇**建立政策**。

      您現在已建立許可政策。

1. 建立建置角色，如下所示：

   1. 在導覽窗格中，選擇**角色**，然後選擇**建立角色**。

   1. 選擇**自訂信任政策**。

   1. 刪除現有的自訂信任政策。

   1. 新增下列自訂信任政策：

   1. 選擇**下一步**。

   1. 將許可政策連接至建置角色。在**新增許可**頁面的**許可政策**區段中，搜尋`codecatalyst-SAM-deploy-policy`並選取其核取方塊。

   1. 選擇**下一步**。

   1. 針對**角色名稱**，輸入：

      ```
      codecatalyst-SAM-deploy-role
      ```

   1. 針對**角色描述**，輸入：

      ```
      CodeCatalyst SAM deploy role
      ```

   1. 選擇建**立角色**。

   您現在已建立具有信任政策和許可政策的建置角色。

1. 將許可政策連接至建置角色，如下所示：

   1. 在導覽窗格中，選擇**角色**，然後搜尋 `codecatalyst-SAM-deploy-role`。``

   1. 選擇 `codecatalyst-SAM-deploy-role`以顯示其詳細資訊。``

   1. 在**許可**索引標籤中，選擇**新增許可**，然後選擇**連接政策**。

   1. 搜尋 `codecatalyst-SAM-deploy-policy`，選取其核取方塊，然後選擇**連接政策**。

      您現在已將許可政策連接至建置角色。建置角色現在有兩個政策：許可政策和信任政策。

1. 取得建置角色 ARN，如下所示：

   1. 在導覽窗格中，選擇**角色**。

   1. 在搜尋方塊中，輸入您剛建立的角色名稱 (`codecatalyst-SAM-deploy-role`)。

   1. 從清單中選擇角色。

      角色的**摘要**頁面隨即出現。

   1. 在頂端複製 **ARN** 值。

   您現在已建立具有適當許可的建置角色，並取得其 ARN。

# Amazon CodeCatalyst 的合規驗證
<a name="compliance-validation"></a>

若要了解 是否 AWS 服務 在特定合規計劃範圍內，請參閱[AWS 服務 合規計劃範圍內](https://aws.amazon.com/compliance/services-in-scope/)然後選擇您感興趣的合規計劃。如需一般資訊，請參閱[AWS 合規計劃](https://aws.amazon.com/compliance/programs/)。

您可以使用 下載第三方稽核報告 AWS Artifact。如需詳細資訊，請參閱[下載報告 in AWS Artifact](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html)

您使用 時的合規責任 AWS 服務 取決於資料的機密性、您公司的合規目標，以及適用的法律和法規。如需使用 時合規責任的詳細資訊 AWS 服務，請參閱 [AWS 安全文件](https://docs.aws.amazon.com/security/)。

# Amazon CodeCatalyst 中的彈性
<a name="disaster-recovery-resiliency"></a>

 AWS 全球基礎設施是以 AWS 區域 和可用區域為基礎建置。區域提供多個分開且隔離的實際可用區域，並以低延遲、高輸送量和高度備援網路連線相互連結。透過可用區域，您可以設計與操作的應用程式和資料庫，在可用區域之間自動容錯移轉而不會發生中斷。可用區域的可用性、容錯能力和擴展能力，均較單一或多個資料中心的傳統基礎設施還高。

如需 AWS 區域 和可用區域的詳細資訊，請參閱 [AWS 全球基礎設施](https://aws.amazon.com/about-aws/global-infrastructure/)。若要進一步了解要跨 複寫哪些 CodeCatalyst 資料 AWS 區域，請參閱 [Amazon CodeCatalyst 中的資料保護](data-protection.md)。

# Amazon CodeCatalyst 中的基礎設施安全性
<a name="infrastructure-security"></a>

Amazon CodeCatalyst 是受管服務，受到 AWS 全球網路安全的保護。如需 AWS 安全服務以及如何 AWS 保護基礎設施的資訊，請參閱[AWS 雲端安全](https://aws.amazon.com/security/)。若要使用基礎設施安全的最佳實務來設計您的 AWS 環境，請參閱*安全支柱 AWS Well-Architected Framework* 中的[基礎設施保護](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/infrastructure-protection.html)。

您可以使用 AWS 發佈的 API 呼叫，透過網路存取 CodeCatalyst。使用者端必須支援下列專案：
+ Transport Layer Security (TLS)。我們需要 TLS 1.2 並建議使用 TLS 1.3。
+ 具備完美轉送私密(PFS)的密碼套件，例如 DHE (Ephemeral Diffie-Hellman)或 ECDHE (Elliptic Curve Ephemeral Diffie-Hellman)。現代系統(如 Java 7 和更新版本)大多會支援這些模式。

# Amazon CodeCatalyst 中的組態和漏洞分析
<a name="vulnerability-analysis-and-management"></a>

組態和 IT 控制是 AWS 與身為客戶的您共同的責任。如需詳細資訊，請參閱 AWS [共同的責任模型](https://aws.amazon.com/compliance/shared-responsibility-model/)。

# 您在 Amazon CodeCatalyst 中的資料和隱私權
<a name="your-data-privacy"></a>

Amazon CodeCatalyst 會嚴肅對待您的隱私權，而您的資訊安全是我們的首要任務。您可以在 [AWS 隱私權通知](https://aws.amazon.com/privacy/)中檢閱更多關於我們如何處理您的資訊。

若要請求和檢視您的資料，請參閱 中的[請求您的資料](https://docs.aws.amazon.com/general/latest/gr/privacy-aws_builder_id.html#request-delete-aws_builder_id) AWS 一般參考。

## 刪除您的 AWS 建置器 ID 設定檔
<a name="id-delete-profile"></a>

刪除您的設定檔是無法反轉的永久動作。在您選擇刪除之後，**刪除**程序會立即開始。Amazon CodeCatalyst 會開始刪除您的設定檔和所有相關聯的個人資訊。此程序最多可能需要 90 天才能完成。

刪除設定檔時，您無法存取或復原 Amazon CodeCatalyst 中的資料。這包括個人存取字符、角色、使用者成員資格，以及您是唯一成員的任何 Amazon CodeCatalyst 空間。您無法再登入 Amazon CodeCatalyst。

如需如何刪除 AWS 建置器 ID 設定檔的資訊，請參閱《》中的[刪除 AWS 建置器 ID](https://docs.aws.amazon.com/general/latest/gr/delete-aws_builder_id.html) AWS 一般參考。

# Amazon CodeCatalyst 中工作流程動作的最佳實務
<a name="security-best-practices-for-actions"></a>

當您在 CodeCatalyst 中開發工作流程時，需要考慮幾個安全最佳實務。以下是一般準則，不代表完整的安全解決方案。這些最佳實務可能不適用或無法滿足您的環境需求，因此請將其視為實用建議就好，而不要當作是指示。

**Topics**
+ [敏感資訊](#sensitive-info)
+ [授權條款](#licensing-terms)
+ [不受信任的程式碼](#untrusted-code)
+ [GitHub 動作](#github-actions)

## 敏感資訊
<a name="sensitive-info"></a>

請勿在 YAML 中內嵌敏感資訊。我們建議您使用 CodeCatalyst 秘密，而不是在 YAML 中內嵌登入資料、金鑰或字符。秘密提供一種簡單的方法來儲存和參考 YAML 中的敏感資訊。

## 授權條款
<a name="licensing-terms"></a>

請務必注意您選擇使用之動作的授權條款。

## 不受信任的程式碼
<a name="untrusted-code"></a>

動作通常是獨立的單一用途模組，可以跨專案、空間或更廣泛的社群共用。使用其他人的程式碼可以獲得極大的便利性和效率，但也會引入新的威脅媒介。檢閱下列各節，以確保您遵循最佳實務來保護 CI/CD 工作流程的安全。

## GitHub 動作
<a name="github-actions"></a>

GitHub 動作是開放原始碼，由社群建置和維護。我們遵循[共同的責任模型](https://aws.amazon.com/compliance/shared-responsibility-model/)，並將 GitHub Actions 原始程式碼視為您負責的客戶資料。GitHub 動作可被授予存取秘密、儲存庫字符、原始程式碼、帳戶連結和您的運算時間。確保您對計劃執行的 GitHub 動作的可信度和安全性有信心。

GitHub 動作的更具體指導和安全性最佳實務：
+ [安全強化](https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions)
+ [防止 pwn 請求](https://securitylab.github.com/research/github-actions-preventing-pwn-requests/)
+ [不受信任的輸入](https://securitylab.github.com/research/github-actions-untrusted-input/)
+ [如何信任您的建置區塊](https://securitylab.github.com/research/github-actions-building-blocks/)

# 了解 CodeCatalyst 信任模型
<a name="trust-model"></a>

Amazon CodeCatalyst 信任模型可讓 CodeCatalyst 在連接的 中擔任服務角色 AWS 帳戶。此模型會連接 IAM 角色、CodeCatalyst 服務主體和 CodeCatalyst 空間。信任政策使用 `aws:SourceArn` 條件金鑰將許可授予條件金鑰中指定的 CodeCatalyst 空間。如需此條件金鑰的詳細資訊，請參閱《*IAM 使用者指南*》中的 [aws：SourceArn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn)。

信任政策 為 JSON 政策文件，您會在其中定義您信任擔任角色的主體。角色信任政策是在 IAM 中連接至角色的以資源為基礎的必要政策。如需詳細資訊，請參閱《*IAM 使用者指南*》中的[術語和概念](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html)。如需 CodeCatalyst 服務主體的詳細資訊，請參閱 [CodeCatalyst 的服務主體](#service-principals)。

在下列信任政策中， `Principal`元素中列出的服務主體會從以資源為基礎的政策授予許可，並使用 `Condition`區塊來限制對縮小範圍資源的存取。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
             "Principal": { 
                "Service": [ 
                    "codecatalyst-runner.amazonaws.com",
                    "codecatalyst.amazonaws.com" 
                ] 
            }, 
            "Action": "sts:AssumeRole",
            "Condition": {
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:codecatalyst:::space/spaceId/project/*"
                }
            }
        }
    ]
}
```

------

在信任政策中，CodeCatalyst 服務主體是透過 `aws:SourceArn`條件金鑰獲得存取權，其中包含 CodeCatalyst 空間 ID 的 Amazon Resource Name (ARN)。ARN 使用以下格式：

```
arn:aws:codecatalyst:::space/spaceId/project/*
```

**重要**  
僅在條件索引鍵中使用空格 ID，例如 `aws:SourceArn`。請勿在 IAM 政策陳述式中使用空格 ID 做為資源 ARN。

最佳實務是盡可能縮小政策中許可的範圍。
+ 您可以在`aws:SourceArn`條件索引鍵中使用萬用字元 (\$1)，以使用 指定空間中的所有專案`project/*`。
+ 您可以使用 為空間中的特定專案在`aws:SourceArn`條件索引鍵中指定資源層級許可`project/projectId`。

## CodeCatalyst 的服務主體
<a name="service-principals"></a>

您可以在資源型 JSON 政策中使用 `Principal`元素來指定允許或拒絕存取資源的委託人。您在信任政策中可指定的主體包含使用者、角色、帳戶和服務。您無法在以身分為基礎的政策中使用 `Principal`元素；同樣地，您無法將使用者群組識別為政策中的委託人 （例如以資源為基礎的政策），因為群組與許可相關，而非身分驗證，且委託人是經過身分驗證的 IAM 實體。

在信任政策 AWS 服務 中，您可以在資源型政策的 `Principal`元素或支援主體的條件金鑰中指定 。服務主體由服務定義。以下是為 CodeCatalyst 定義的服務主體：
+ **codecatalyst.amazonaws.com** - 此服務主體用於將 CodeCatalyst 存取權授予 的角色 AWS。
+ **codecatalyst-runner.amazonaws.com** - 此服務主體用於將 CodeCatalyst 存取權授予 CodeCatalyst 工作流程部署中 AWS 資源的角色。

如需詳細資訊，請參閱《*IAM 使用者指南*》中的 [AWS JSON 政策元素：主體](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)。