本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS Systems Manager Parameter Store
Parameter Store是 的功能,為組態資料管理和機密管理 AWS Systems Manager提供安全的階層式儲存。您可以儲存密碼、資料庫字串、Amazon Machine Image (AMI) IDs、 和 授權碼作為參數值。您存放的值可以是純文字或加密資料。您可以使用您在建立參數時指定的唯一名稱,在指令碼、命令、SSM文件和組態和自動化工作流程中參考 Systems Manager 參數。若要開始使用 Parameter Store,開啟 Systems Manager 主控台
Parameter Store 也與 Secrets Manager 整合。使用已支援 參考的其他 時 AWS 服務 ,您可以擷取 Secrets Manager 秘密 Parameter Store 參數。如需詳細資訊,請參閱參考來自 的 AWS Secrets Manager 秘密 Parameter Store parameters。
注意
若要實作密碼輪換生命週期,請使用 AWS Secrets Manager。您可以使用 Secrets Manager 在資料庫憑證、API金鑰和其他秘密的生命週期中輪換、管理和擷取這些機密。如需詳細資訊,請參閱 使用者指南 中的什麼是 AWS Secrets Manager?。 AWS Secrets Manager
如何 Parameter Store 使我的組織受益?
Parameter Store 提供下列優點:
-
使用安全、可擴展的託管秘密管理服務 (無伺服器需要管理)。
-
隔離您的資料與程式碼以改善您的安全態勢。
-
將組態資料和加密字串存放在階層和追蹤版本中。
-
以精密分級控制及稽核存取。
-
可靠地存放參數,因為 Parameter Store 託管在 中的多個可用區域中 AWS 區域。
誰應該使用 Parameter Store?
-
任何想要以集中方式管理組態資料 AWS 的客戶。
-
想要存放不同登入資料和參考串流的軟體開發人員。
-
想要在其秘密和密碼發生變更或未變更時接收通知的系統管理員。
有哪些功能 Parameter Store?
-
變更通知
您可以同時為參數和參數政策設定變更通知和呼叫自動化動作。如需詳細資訊,請參閱根據 設定通知或觸發動作 Parameter Store 事件。
-
組織參數
您可以單獨標記參數,以根據指派給參數的標籤協助您找出一或多個文件。例如,您可以為特定的環境或部門標記參數。
-
標籤版本
您可以透過建立標籤來關聯參數版本的別名。如果參數有多個版本,標籤可協助您記住參數版本的目的。
-
資料驗證
您可以建立指向 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體和 的參數 Parameter Store 會驗證這些參數,以確保其參考預期的資源類型、資源是否存在,以及客戶擁有使用該資源的許可。例如,您可以使用 建立參數 Amazon Machine Image (AMI) ID 作為
aws:ec2:image
資料類型的值,以及 Parameter Store 執行非同步驗證操作,以確保參數值符合 的格式要求 AMI ID,且指定的 AMI 可在您的 中使用 AWS 帳戶。 -
參考秘密
Parameter Store 已與 整合, AWS Secrets Manager 因此您可以使用 AWS 服務 已支援 參考的其他 來擷取 Secrets Manager 秘密 Parameter Store 參數。
-
與其他 帳戶共用參數
您可以選擇性地將組態資料集中在單一中, AWS 帳戶 並與需要存取的其他帳戶共用參數。
-
可從其他 存取 AWS 服務
您可以使用...Parameter Store 參數,搭配其他 Systems Manager 功能 AWS 服務 ,以及從中央存放區擷取秘密和組態資料。參數適用於 Systems Manager 功能,例如 Run Command、自動化和 State Manager, 的功能 AWS Systems Manager。您也可以參考許多其他 中的參數 AWS 服務,包括下列項目:
-
Amazon Elastic Compute Cloud (Amazon EC2)
-
Amazon Elastic Container Service (Amazon ECS)
-
AWS Secrets Manager
-
AWS Lambda
-
AWS CloudFormation
-
AWS CodeBuild
-
AWS CodePipeline
-
AWS CodeDeploy
-
-
與其他 整合 AWS 服務
設定與下列項目的整合, AWS 服務 以進行加密、通知、監控和稽核:
-
AWS Key Management Service (AWS KMS)
-
Amazon Simple Notification Service (Amazon SNS)
-
Amazon CloudWatch:如需詳細資訊,請參閱 設定參數和參數政策的 EventBridge 規則。
-
Amazon EventBridge:如需詳細資訊,請參閱 使用 Amazon SNS通知監控 Systems Manager 狀態變更和 參考:Systems Manager 的 Amazon EventBridge 事件模式和類型。
-
AWS CloudTrail︰如需詳細資訊,請參閱 使用 記錄 AWS Systems Manager API通話 AWS CloudTrail。
-
什麼是參數?
A Parameter Store 參數是儲存在 中的任何資料片段 Parameter Store,例如文字區塊、名稱清單、密碼、AMI ID、授權金鑰等。您可以在指令碼、命令和SSM文件中集中安全地參考這些資料。
當您參考參數時,使用以下慣例來指定參數名稱:
{{ssm:
}}parameter-name
注意
不能在其他參數的值中參考或巢套參數。參數值中不能包含 {{}}
或 {{ssm:
。parameter-name
}}
Parameter Store 支援三種類型的參數:String
、 StringList
和 SecureString
。
除了一個例外狀況,當您建立或更新參數時,以純文字形式輸入參數值,以及 Parameter Store 不會對您輸入的文字執行驗證。不過,對於String
參數,您可以將資料類型指定為 aws:ec2:image
,以及 Parameter Store 驗證您輸入的值是否為 Amazon 的正確格式 EC2 AMI;例如:ami-12345abcdeEXAMPLE
。
參數類型:String
根據預設,String
參數是由您輸入的任何文字區塊組成。例如:
-
abc123
-
Example Corp
-
<img src="images/bannerImage1.png"/>
參數類型: StringList
StringList
參數包含以逗號分隔的數值清單,如下列範例所示。
Monday,Wednesday,Friday
CSV,TSV,CLF,ELF,JSON
參數類型: SecureString
SecureString
參數是需要以安全方式存放和參考的所有敏感資料。如果您有資料不希望使用者更改或以純文字參考,例如密碼或授權金鑰,請使用 SecureString
資料類型建立這些參數。
重要
請勿在 String
或 StringList
參數中存放敏感資料。對於所有必須保持加密的敏感資料,請僅使用 SecureString
參數類型。
如需詳細資訊,請參閱使用 建立 SecureString參數 AWS CLI。
在以下情況中,我們建議使用 SecureString
參數。
-
您想要在 中使用資料/參數, AWS 服務 而不在命令、函數、代理程式日誌或 CloudTrail 日誌中將值公開為純文字。
-
您希望控制哪些使用者可以存取敏感資料。
-
您想要在存取敏感資料時能夠稽核 (CloudTrail)。
-
您希望將敏感資料加密,而且您希望使用自己的加密金鑰來管理存取。
重要
僅加密 SecureString
參數的值。參數名稱、說明和其他屬性不會加密。
您可以針對要加密的文字資料使用 SecureString
參數類型,例如密碼、應用程式秘密、機密組態資料,或您要保護的任何其他類型資料。 SecureString
資料會使用 AWS KMS 金鑰加密和解密。您可以使用 提供的預設KMS金鑰, AWS 或建立和使用您自己的 AWS KMS key。(如果想限制使用者對 SecureString
參數的存取,請使用您自己的 AWS KMS key 。如需詳細資訊,請參閱 IAM 使用 AWS 預設金鑰和客戶受管金鑰的許可。)
您也可以將SecureString
參數與其他 搭配使用 AWS 服務。在下列範例中,Lambda GetParameters 函數會使用 擷取 SecureString
參數API。
from __future__ import print_function import json import boto3 ssm = boto3.client('ssm', 'us-east-2') def get_parameters(): response = ssm.get_parameters( Names=['LambdaSecureString'],WithDecryption=True ) for parameter in response['Parameters']: return parameter['Value'] def lambda_handler(event, context): value = get_parameters() print("value1 = " + value) return value # Echo back the first key value
AWS KMS 加密和定價
如果您在建立SecureString
參數時選擇參數類型,Systems Manager 會使用 AWS KMS 來加密參數值。
重要
Parameter Store 僅支援對稱加密KMS金鑰 。您不能使用非對稱加密KMS金鑰來加密參數。如需協助判斷KMS金鑰是對稱或非對稱,請參閱 AWS Key Management Service 開發人員指南中的識別對稱和非對稱KMS金鑰
不收取來自 的費用 Parameter Store 建立SecureString
參數,但使用 AWS KMS 加密的費用確實適用。如需相關資訊,請參閱 AWS Key Management Service
定價
如需 AWS 受管金鑰 和客戶受管金鑰的詳細資訊,請參閱 AWS Key Management Service 開發人員指南 中的AWS Key Management Service 概念。如需關於 Parameter Store 和 AWS KMS 加密,請參閱如何 AWS Systems Manager Parameter Store 使用 AWS KMS。
注意
若要檢視 AWS 受管金鑰,請使用 AWS KMS DescribeKey
操作。此 AWS Command Line Interface (AWS CLI) 範例使用 DescribeKey
檢視 AWS 受管金鑰。
aws kms describe-key --key-id alias/aws/ssm
- 詳細資訊