

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

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

 AWS [共同責任模型](https://aws.amazon.com/compliance/shared-responsibility-model/)適用於 中的資料保護 AWS CodeBuild。如此模型所述， AWS 負責保護執行所有 的全域基礎設施 AWS 雲端。您負責維護在此基礎設施上託管內容的控制權。您也同時負責所使用 AWS 服務 的安全組態和管理任務。如需資料隱私權的詳細資訊，請參閱[資料隱私權常見問答集](https://aws.amazon.com/compliance/data-privacy-faq/)。如需有關歐洲資料保護的相關資訊，請參閱*AWS 安全性部落格*上的[AWS 共同責任模型和 GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) 部落格文章。

基於資料保護目的，我們建議您保護 AWS 帳戶 登入資料，並使用 AWS IAM Identity Center 或 AWS Identity and Access Management (IAM) 設定個別使用者。如此一來，每個使用者都只會獲得授與完成其任務所必須的許可。我們也建議您採用下列方式保護資料：
+ 每個帳戶均要使用多重要素驗證 (MFA)。
+ 使用 SSL/TLS 與 AWS 資源通訊。我們需要 TLS 1.2 並建議使用 TLS 1.3。
+ 使用 設定 API 和使用者活動記錄 AWS CloudTrail。如需有關使用 CloudTrail 追蹤擷取 AWS 活動的資訊，請參閱*AWS CloudTrail 《 使用者指南*》中的[使用 CloudTrail 追蹤](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-trails.html)。
+ 使用 AWS 加密解決方案，以及其中的所有預設安全控制 AWS 服務。
+ 使用進階的受管安全服務 (例如 Amazon Macie)，協助探索和保護儲存在 Amazon S3 的敏感資料。
+ 如果您在 AWS 透過命令列界面或 API 存取 時需要 FIPS 140-3 驗證的密碼編譯模組，請使用 FIPS 端點。如需有關 FIPS 和 FIPS 端點的更多相關資訊，請參閱[聯邦資訊處理標準 (FIPS) 140-3](https://aws.amazon.com/compliance/fips/)。

我們強烈建議您絕對不要將客戶的電子郵件地址等機密或敏感資訊，放在標籤或自由格式的文字欄位中，例如**名稱**欄位。這包括當您使用 CodeBuild 或使用主控台、API AWS CLI或 AWS SDKs的其他 AWS 服務 時。您在標籤或自由格式文字欄位中輸入的任何資料都可能用於計費或診斷日誌。如果您提供外部伺服器的 URL，我們強烈建議請勿在驗證您對該伺服器請求的 URL 中包含憑證資訊。

 為了保護敏感資訊，CodeBuild 日誌中會隱藏下列項目：
+  使用 CodeBuild 專案環境變數中的參數存放區或 buildspec `env/parameter-store`區段指定的字串。如需詳細資訊，請參閱《*Amazon EC2 Systems Manager 使用者指南*》中的 [Systems Manager 參數存放區](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-paramstore.html)和 [Systems Manager 參數存放區主控台演練](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-walk.html#sysman-paramstore-console)。
+  在 CodeBuild 專案環境變數或 buildspec `env/secrets-manager`區段 AWS Secrets Manager 中使用 指定的字串。如需詳細資訊，請參閱[金鑰管理](security-key-management.md)。

如需資料保護的詳細資訊，請參閱安全部落格上的[AWS 共同責任模型和 GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) *AWS 部落格*文章。

**Topics**
+ [資料加密](security-encryption.md)
+ [金鑰管理](security-key-management.md)
+ [流量隱私權](security-traffic-privacy.md)

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

加密是 CodeBuild 安全性的重要部分。有些加密，例如傳輸中的資料，會預設提供，並且您不需要採取任何動作。其他加密，例如靜態資料，則可以在建立您的專案或組建時設定。
+ **靜態資料加密** - 根據預設會使用 加密建置成品，例如快取、日誌、匯出的原始測試報告資料檔案和建置結果 AWS 受管金鑰。如果您不想使用這些 KMS 金鑰，則必須建立和設定客戶受管金鑰。如需詳細資訊，請參閱*AWS Key Management Service 《 使用者指南*》中的[建立 KMS 金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)和[AWS 金鑰管理服務概念](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html)。
  + 您可以存放 CodeBuild 用來加密`CODEBUILD_KMS_KEY_ID`環境變數中建置輸出成品之 AWS KMS 金鑰的識別符。如需詳細資訊，請參閱[建置環境中的環境變數](build-env-ref-env-vars.md) 
  + 您可以在建立建置專案時指定客戶受管金鑰。如需詳細資訊，請參閱 [Set the Encryption Key Using the Console](create-project.md#encryptionkey-console)和[使用 CLI 設定加密金鑰](create-project.md#cli.encryptionkey)。

  根據預設，建置機群的 Amazon Elastic Block Store 磁碟區會使用 進行加密 AWS 受管金鑰。
+ **加密傳輸中的資料** - 客戶與 CodeBuild 以及 CodeBuild 與其下游相依性之間的所有通訊，都會使用使用 Signature 第 4 版簽署程序簽署的 TLS 連線進行保護。所有 CodeBuild 端點都使用由 管理的 SHA-256 憑證 AWS 私有憑證授權單位。如需詳細資訊，請參閱[簽章版本 4 簽署程序](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html)和[什麼是 ACM PCA](https://docs.aws.amazon.com/privateca/latest/userguide/)。
+ **建置成品加密** - 與建置專案相關聯的 CodeBuild 服務角色需要存取 KMS 金鑰，才能加密其建置輸出成品。根據預設，CodeBuild 會在您的帳戶中使用 AWS 受管金鑰 適用於 Amazon S3 的 AWS 。如果您不想使用此 AWS 受管金鑰，則必須建立和設定客戶受管金鑰。如需詳細資訊，請參閱《 *AWS KMS 開發人員指南*》中的 [加密建置輸出](setting-up-kms.md)和[建立金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)。

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

您可以藉由加密保護您的內容不遭到未經授權的使用。將您的加密金鑰存放在 中 AWS Secrets Manager，然後授予與建置專案相關聯的 CodeBuild 服務角色，以從您的 Secrets Manager 帳戶取得加密金鑰的許可。如需詳細資訊，請參閱[使用客戶受管金鑰加密建置輸出](setting-up-kms.md)、[在 中建立建置專案 AWS CodeBuild](create-project.md)、[手動執行 AWS CodeBuild 組建](run-build.md)和[教學：儲存並擷取秘密](https://docs.aws.amazon.com/secretsmanager/latest/userguide/tutorials_basic.html)。

在建置命令中使用`CODEBUILD_KMS_KEY_ID`環境變數來取得 AWS KMS 金鑰識別符。如需詳細資訊，請參閱[建置環境中的環境變數](build-env-ref-env-vars.md)。

您可以使用 Secrets Manager 來保護私有登錄檔的登入資料，該登錄檔存放用於執行期環境的 Docker 映像。如需詳細資訊，請參閱[具有 CodeBuild AWS Secrets Manager 範例的私有登錄檔](sample-private-registry.md)。

# 流量隱私權
<a name="security-traffic-privacy"></a>

您可以將 CodeBuild 設定為使用介面 VPC 端點，以改善建置的安全性。若要執行此動作，您不需要網際網路閘道、NAT 裝置或虛擬私有閘道。您也不需要設定 PrivateLink，不過這是建議的行為。如需詳細資訊，請參閱[使用 VPC 端點](use-vpc-endpoints-with-codebuild.md)。如需 PrivateLink 和 VPC 端點的詳細資訊，請參閱 [AWS PrivateLink](https://aws.amazon.com/privatelink/) 和[透過 PrivateLink AWS 存取服務](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Introduction.html#what-is-privatelink)。