本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
參考環境變數
使用 App Runner,您可以在建立服務或更新服務時,在服務中將機密和設定參考為環境變數。
您可以將純文字中的逾時和重試計數等非機密組態資料引用為索引鍵值配對。您在純文本中引用的配置數據不會加密,其他人可以在 App Runner 服務配置和應用程序日誌中看到。
注意
出於安全原因,請勿在 App Runner 服務中引用純文本中的任何敏感數據。
將敏感資料參考為環境變數
App Runner 支援在服務中安全地將敏感資料引用為環境變數。請考慮儲存您要參考的敏感資料AWS Secrets Manager或AWS Systems Manager 參數存放區。然後,您可以從 App Runner 主控台或呼叫 API,在服務中安全地將它們引用為環境變數。這有效地將秘密和參數管理與應用程式程式碼和服務組態分開,從而改善在 App Runner 上執行之應用程式的整體安全性。
注意
應用程序運行器不會向您收取引用 Secrets Manager 和 SSM 參數存儲作為環境變量的費用。不過,您需要為使用 Secrets Manager 和 SSM 參數存放區支付標準定價。
如需關於定價的詳細資訊,請參閱下列資訊:
以下是將敏感資料參考為環境變數的程序:
-
將機密資料 (例如 API 金鑰、資料庫認證、資料庫連線參數或應用程式版本) 儲存為秘密或參數到 AWS Secrets Manager 或 AWS Systems Manager 參數存放區中。
-
更新執行個體角色的 IAM 政策,以便應用程式執行器可以存取秘密管理員和 SSM 參數存放區中儲存的密碼和參數。如需詳細資訊,請參閱 許可。
-
透過指派名稱並提供其 Amazon 資源名稱 (ARN),安全地將機密和參數引用為環境變數。您可以在建立服務或更新服務的組態時新增環境變數。您可以使用下列其中一個選項來新增環境變數:
-
應用程式執行器
-
應用程序亞軍 API
-
apprunner.yaml
組態檔案
注意
建立或更新 App Runner 服務時,您無法指派
PORT
為環境變數的名稱。它是應用程式執行器服務的保留環境變數。如需如何參考密碼和參數的詳細資訊,請參閱管理環境變數。
-
注意
由於 App Runner 僅儲存秘密和參數 ARN 的參考,因此在 App Runner 服務設定和應用程式記錄檔中的其他人看不到敏感資料。
考量事項
-
請務必使用適當的權限更新執行個體角色,以存取參數存放區中 AWS Secrets Manager 或中的機密和參 AWS Systems Manager 數。如需詳細資訊,請參閱 許可。
-
請確定 AWS Systems Manager 參數存放區與您要啟動或更新的服務位於相同 AWS 帳戶 的服務中。目前,您無法跨帳戶參考 SSM 參數存放區參數。
-
當密碼和參數值旋轉或變更時,它們不會在 App Runner 服務中自動更新。重新部署您的應用程序運行器服務,因為應用程序運行器僅在部署期間提取秘密
-
您還可以選擇通過應用程序運行器服務中的 SDK 直接調用 AWS Secrets Manager 和 AWS Systems Manager 參數存儲。
-
為了避免錯誤,請在將它們引用為環境變量時確保以下內容:
-
您可以指定密碼的右 ARN。
-
您可以指定參數的正確名稱或 ARN。
-
許可
若要啟用存放在 AWS Secrets Manager 或 SSM 參數存放區中的參考密碼和參數,請將適當的許可新增至執行個體角色的 IAM 政策,以存取 Secrets Manager 和 SSM 參數存放區。
注意
未經您的許可,應用程序運行器無法訪問您帳戶中的資源。您可以透過更新 IAM 政策來提供許可。
您可以使用下列政策範本在 IAM 主控台中更新執行個體角色。您可以修改這些原則範本以符合您的特定需求。如需更新執行個體角色的詳細資訊,請參閱《IAM 使用者指南》中的修改角色。
注意
您也可以在建立環境變數時,從 App Runner 主控台複製下列範本。
將下列範本複製到您的執行個體角色,以新增參考密碼的權限AWS Secrets Manager。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "kms:Decrypt*" ], "Resource": [ "arn:aws:secretsmanager:<region>:<aws_account_id>:secret:<secret_name>", "arn:aws:kms:<region>:<aws_account_id>:key/<key_id>" ] } ] }
將下列範本複製到您的執行個體角色,以便從AWS Systems Manager參數存放區新增參考參數的權限。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:GetParameters" ], "Resource": [ "arn:aws:ssm:<region>:<aws_account_id>:parameter/<parameter_name>" ] } ] }