靜態加密 - Amazon Inspector

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

靜態加密

根據預設,Amazon Inspector 會使用 AWS 加密解決方案來存放靜態資料。Amazon Inspector 會加密資料,例如:

  • 使用 收集的資源庫存 AWS Systems Manager。

  • 從 Amazon Elastic Container Registry 映像剖析的資源庫存

  • 使用來自 的 AWS 擁有加密金鑰產生安全調查結果 AWS Key Management Service

您無法管理、使用或檢視 AWS 擁有的金鑰。不過,您不需要採取動作或變更程式來保護加密資料的金鑰。如需詳細資訊,請參閱AWS 擁有的金鑰

如果您停用 Amazon Inspector,它會永久刪除其為您存放或維護的所有資源,例如收集的庫存和安全性問題清單。

靜態加密問題清單中的程式碼

對於 Amazon Inspector Lambda 程式碼掃描,Amazon Inspector 會與 CodeGuru 合作掃描程式碼是否有漏洞。偵測到漏洞時CodeGuru 會擷取包含漏洞的程式碼片段,並存放該程式碼,直到 Amazon Inspector 請求存取為止。根據預設,CodeGuru 會使用 AWS 擁有的金鑰來加密擷取的程式碼,不過,您可以將 Amazon Inspector 設定為使用自己的客戶受管 AWS KMS 金鑰進行加密。

下列工作流程說明 Amazon Inspector 如何使用您設定的金鑰來加密程式碼:

  1. 您可以使用 Amazon Inspector UpdateEncryptionKey API 將 AWS KMS 金鑰提供給 Amazon Inspector。

  2. Amazon Inspector 會將您 AWS KMS 金鑰的相關資訊轉送至 CodeGuru。CodeGuru 會儲存資訊以供日後使用。

  3. CodeGuru AWS KMS 會針對您在 Amazon Inspector 中設定的金鑰請求 授予

  4. CodeGuru 會從您的金鑰建立加密的資料 AWS KMS 金鑰,並將其存放。此資料金鑰用於加密 CodeGuru 儲存的程式碼資料。

  5. 每當 Amazon Inspector 從程式碼掃描請求資料時CodeGuru 會使用 授予來解密加密的資料金鑰,然後使用該金鑰來解密資料,以便擷取資料。

當您停用 Lambda 程式碼掃描 CodeGuru 時, 會淘汰授與並刪除相關聯的資料金鑰。

使用客戶受管金鑰進行程式碼加密的許可

若要使用加密,您需要擁有允許存取 AWS KMS 動作的政策,以及授予 Amazon Inspector 和 CodeGuru 透過條件金鑰使用這些動作的許可陳述式。

如果您要設定、更新或重設帳戶的加密金鑰,則需要使用 Amazon Inspector 管理員政策,例如 AWS 受管政策: AmazonInspector2FullAccess。您也需要將下列許可授予唯讀使用者,這些使用者需要從所選用於加密之金鑰的調查結果或資料中擷取程式碼片段。

對於 KMS,政策必須允許您執行下列動作:

  • kms:CreateGrant

  • kms:Decrypt

  • kms:DescribeKey

  • kms:GenerateDataKeyWithoutPlainText

  • kms:Encrypt

  • kms:RetireGrant

驗證政策中是否具有正確的 AWS KMS 許可後,您必須連接允許 Amazon Inspector 和 CodeGuru 使用您的金鑰進行加密的陳述式。附加下列政策陳述式:

注意

將區域取代為您啟用 Amazon Inspector Lambda 程式碼掃描 AWS 的區域。

{ "Sid": "allow CodeGuru Security to request a grant for a AWS KMS key", "Effect": "Allow", "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "kms:GrantOperations": [ "GenerateDataKey", "GenerateDataKeyWithoutPlaintext", "Encrypt", "Decrypt", "RetireGrant", "DescribeKey" ] }, "StringEquals": { "kms:ViaService": [ "codeguru-security.Region.amazonaws.com" ] } } }, { "Sid": "allow Amazon Inspector and CodeGuru Security to use your AWS KMS key", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:RetireGrant", "kms:DescribeKey", "kms:GenerateDataKeyWithoutPlaintext" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": [ "inspector2.Region.amazonaws.com", "codeguru-security.Region.amazonaws.com" ] } } }
注意

當您新增陳述式時,請確定語法有效。政策使用 JSON 格式。這表示您需要在陳述式之前或之後新增逗號,具體取決於您將陳述式新增至政策的位置。如果您將陳述式新增為最後一個陳述式,請在上述陳述式的關閉架構之後新增逗號。如果您將其新增為第一個陳述式,或在兩個現有陳述式之間新增逗號,請在陳述式的關閉架構之後新增逗號。

使用客戶受管金鑰設定加密

若要使用客戶受管金鑰設定帳戶的加密,您必須是具有 中概述許可的 Amazon Inspector 管理員使用客戶受管金鑰進行程式碼加密的許可。此外,您將需要與問題清單位於相同 AWS 區域的 AWS KMS 金鑰,或多區域金鑰。您可以使用帳戶中現有的對稱金鑰,或使用 AWS 管理主控台或 AWS KMS APIs 建立對稱客戶受管金鑰。如需詳細資訊,請參閱《 AWS KMS 使用者指南》中的建立對稱加密 AWS KMS 金鑰

使用 Amazon Inspector API 設定加密

以 Amazon Inspector 管理員身分登入時,設定用於加密 Amazon Inspector API UpdateEncryptionKey 操作的金鑰。在 API 請求中,使用 kmsKeyId 欄位來指定您要使用的 AWS KMS 金鑰 ARN。scanType 輸入 CODEresourceType輸入 AWS_LAMBDA_FUNCTION

您可以使用 UpdateEncryptionKey API 來檢查 Amazon Inspector 用於加密的 AWS KMS 金鑰檢視。

注意

如果您在尚未設定客戶受管金鑰GetEncryptionKey時嘗試使用 , 操作會傳回ResourceNotFoundException錯誤,這表示使用 AWS 擁有的金鑰進行加密。

如果您刪除 或 金鑰,或變更拒絕存取 Amazon Inspector 或 CodeGuru 的政策,您將無法存取程式碼漏洞問題清單,而且您帳戶的 Lambda 程式碼掃描將會失敗。

您可以使用 ResetEncryptionKey 來使用 AWS 擁有的金鑰繼續加密擷取的程式碼,做為 Amazon Inspector 調查結果的一部分。