View a markdown version of this page

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

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

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

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

  3. Amazon Q 透過金鑰政策使用您在 Amazon Inspector 中設定的 KMS 金鑰。

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

  5. 當 Amazon Inspector 從程式碼掃描請求資料時,Amazon Q 會使用 KMS 金鑰來解密資料金鑰。當您停用 Lambda 程式碼掃描時,Amazon Q 會刪除相關聯的資料金鑰。

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

對於加密,您必須建立 KMS 金鑰其中包含允許 Amazon Inspector 和 Amazon Q 執行下列動作的陳述式的政策。

  • kms:Decrypt

  • kms:DescribeKey

  • kms:Encrypt

  • kms:GenerateDataKey

  • kms:GenerateDataKeyWithoutPlainText

政策聲明

您可以在建立 KMS 金鑰時使用下列政策陳述式。

注意

將 取代account-id為您的 12 位數AWS 帳戶 ID。Region 將 取代為您啟用 Amazon Inspector 和 Lambda 程式碼掃描AWS 區域的 。role-ARN 將 取代為 IAM 角色的 Amazon Resource Name。

{ "Effect": "Allow", "Principal": { "Service": "q.amazonaws.com" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKeyWithoutPlaintext", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:qdeveloper:lambda-codescan-scope": "account-id" }, "StringEquals": { "aws:SourceAccount": "account-id" }, "ArnLike": { "aws:SourceArn": "arn:aws:qdeveloper:Region:account-id:scans/*" } } }, { "Effect": "Allow", "Principal": { "Service": "q.amazonaws.com" }, "Action": "kms:DescribeKey", "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" }, "ArnLike": { "aws:SourceArn": "arn:aws:qdeveloper:Region:account-id:scans/*" } } }, { "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKeyWithoutPlaintext", "kms:GenerateDataKey" ], "Principal": { "AWS": "role-ARN" }, "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "inspector2.Region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:qdeveloper:lambda-codescan-scope": "account-id" } } }, { "Effect": "Allow", "Action": [ "kms:DescribeKey" ], "Principal": { "AWS": "role-ARN" }, "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "inspector2.Region.amazonaws.com" } } }

政策陳述式的格式為 JSON。包含 陳述式之後,請檢閱政策以確保語法有效。如果陳述式是政策中的最後一個陳述式,請將逗號放在前一個陳述式的關閉架構之後。如果陳述式是政策中的第一個陳述式或兩個現有陳述式之間,請在陳述式的結尾括弧後面加上逗號。

注意

Amazon Inspector 不再支援授權來加密從套件擷取的程式碼片段。如果您使用以授予為基礎的政策,您仍然可以存取問題清單。不過,如果您更新或重設 KMS 金鑰或停用 Lambda 程式碼掃描,您將需要使用本節所述的 KMS 金鑰政策。

如果您設定、更新或重設帳戶的加密金鑰,您必須使用 Amazon Inspector 管理員政策,例如AWS受管政策AmazonInspector2FullAccess

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

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

注意

自 2025 年 6 月 13 日起,在程式碼片段加密/解密期間登入 CloudTrail 的AWS KMS請求中的服務主體將從「codeguru-reviewer」變更為「q」。

使用 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 或 Amazon Q 的政策,您將無法存取程式碼漏洞問題清單,而且您帳戶的 Lambda 程式碼掃描將會失敗。

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