本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 App Runner,您可以在建立服務或更新服務時,參考秘密和組態做為服務中的環境變數。
您可以參考非敏感組態資料,例如純文字中的逾時和重試計數,做為鍵值對。您在純文字中參考的組態資料不會加密,其他人可以在 App Runner 服務組態和應用程式日誌中看到。
注意
基於安全考量,請勿在 App Runner 服務中參考純文字中的任何敏感資料。
參考敏感資料做為環境變數
App Runner 支援在 服務中安全地參考敏感資料做為環境變數。考慮將您要參考的敏感資料存放在 AWS Secrets Manager或 AWS Systems Manager 參數存放區。然後,您可以從 App Runner 主控台或呼叫 API,在服務中安全地參考它們做為環境變數。這可有效地將秘密和參數管理與應用程式程式碼和服務組態分開,改善在 App Runner 上執行之應用程式的整體安全性。
注意
App Runner 不會向您收取將 Secrets Manager 和 SSM 參數存放區做為環境變數的參考費用。不過,您需為使用 Secrets Manager 和 SSM 參數存放區支付標準定價。
如需關於定價的詳細資訊,請參閱下列資訊:
以下是將敏感資料參考為環境變數的程序:
-
將敏感資料,例如 API 金鑰、資料庫登入資料、資料庫連線參數或應用程式版本,做為秘密或參數存放在 AWS Secrets Manager 或 AWS Systems Manager 參數存放區。
-
更新執行個體角色的 IAM 政策,讓 App Runner 可以存取存放在 Secrets Manager 和 SSM 參數存放區中的秘密和參數。如需詳細資訊,請參閱 許可。
-
透過指派名稱並提供其 Amazon Resource Name (ARN),將秘密和參數安全地參考為環境變數。您可以在建立服務或更新服務組態時新增環境變數。您可以使用下列其中一個選項來新增環境變數:
-
App Runner 主控台
-
App Runner API
-
apprunner.yaml
組態檔案
注意
您無法在建立或更新 App Runner 服務時,將 指派
PORT
為環境變數的名稱。這是 App Runner 服務的預留環境變數。如需如何參考秘密和參數的詳細資訊,請參閱管理環境變數。
-
注意
由於 App Runner 只會儲存對秘密和參數 ARNs參考,因此在 App Runner 服務組態和應用程式日誌中,其他人看不到敏感資料。
考量事項
-
請務必使用適當的許可來更新執行個體角色,以存取 AWS Secrets Manager 參數存放區中的 AWS Systems Manager 秘密和參數。如需詳細資訊,請參閱 許可。
-
請確定 AWS Systems Manager 參數存放區與您要啟動或更新 AWS 帳戶 的服務位於相同位置。目前,您無法跨帳戶參考 SSM 參數存放區參數。
-
當秘密和參數值輪換或變更時,它們不會在您的 App Runner 服務中自動更新。重新部署您的 App Runner 服務,因為 App Runner 只會在部署期間提取秘密和參數。
-
您也可以選擇透過 App Runner 服務中的 SDK 直接呼叫 AWS Secrets Manager 和 AWS Systems Manager 參數存放區。
-
為了避免錯誤,在將它們參考為環境變數時,請確定下列事項:
-
您可以指定秘密的正確 ARN。
-
您可以指定 參數的正確名稱或 ARN。
-
許可
若要啟用參考存放在 AWS Secrets Manager 或 SSM 參數存放區中的秘密和參數,請將適當的許可新增至執行個體角色的 IAM 政策,以存取 Secrets Manager 和 SSM 參數存放區。
注意
未經您的許可,App Runner 無法存取您帳戶中的資源。您可以透過更新 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>"
]
}
]
}