AWS Systems Manager Parameter Store - AWS Systems Manager

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

AWS Systems Manager Parameter Store

Parameter Store的功能 AWS Systems Manager,提供安全的階層式儲存,以進行組態資料管理和密碼管理。您可以存放密碼、資料庫字串、Amazon Machine Image (AMI) ID 和授權碼之類的資料做為參數值。您存放的值可以是純文字或加密資料。您可以使用您在建立參數時指定的唯一名稱,在您的指令碼、命令、SSM 文件,以及組態和自動化工作流程中參考 Systems Manager 參數。若要開始使用 Parameter Store,請開啟 Systems Manager 主控台。在導覽窗格中,選擇 Parameter Store

Parameter Store 也與 Secrets Manager 整合。您可以在使用其他已支援參考 Parameter Store 參數的 AWS services 時,擷取 Secrets Manager 秘密。如需詳細資訊,請參閱 參考 Parameter Store 參數中的 AWS Secrets Manager 秘密

注意

若要實作密碼輪替生命週期,請使用。 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事件設定通知或觸發動作

  • 組織參數

    您可以單獨標記參數,以根據指派給參數的標籤協助您找出一或多個文件。例如,您可以為特定的環境或部門標記參數。如需詳細資訊,請參閱 標記 Systems Manager 參數

  • 標籤版本

    您可以透過建立標籤來關聯參數版本的別名。如果參數有多個版本,標籤可協助您記住參數版本的目的。

  • 資料驗證

    您可以建立指向 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 便您可以在使用已支援Parameter Store參數參照的其他 AWS services 機密時擷取 Secrets Manager 密碼。

  • 與其他帳戶共用參數

    您可以選擇性地將組態資料集中在單一中, AWS 帳戶 並與其他需要存取這些資料的帳戶共用參數。

  • 可從其他存取 AWS services

    您可以使用 Parameter Store 參數與其他 Systems Manager 功能和 AWS services ,從集中存放區擷取秘密和組態資料。參數可與 Systems Manager 功能搭配使用Run Command,例如,自動化和State Manager功能 AWS Systems Manager。您也可以參考許多其他參數 AWS services,包括下列項目:

    • 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 services

    設定與下列項目的整合,以 AWS services 進行加密、通知、監視和稽核:

什麼是參數?

Parameter Store 參數是儲存在 Parameter Store 中的任何資料片段,例如文字區塊、名稱清單、密碼、AMI ID、授權金鑰等。您可以集中、安全地在您的指令碼、命令和 SSM 文件中參考這項資料。

當您參考參數時,使用以下慣例來指定參數名稱:

{{ssm:parameter-name}}

注意

不能在其他參數的值中參考或巢套參數。參數值中不能包含 {{}}{{ssm:parameter-name}}

Parameter Store支援三種參數:StringStringListSecureString

除了一個例外狀況,當您建立或更新參數時,將參數值輸入為純文字,並且 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 資料類型建立這些參數。

重要

請勿在 StringStringList 參數中存放敏感資料。對於所有必須保持加密的敏感資料,請僅使用 SecureString 參數類型。

如需詳細資訊,請參閱 建立 SecureString 參數 (AWS CLI)

在以下情況中,我們建議使用 SecureString 參數。

  • 您想要跨使用資料/參數, AWS services 而不會在命令、函數、代理程式記錄或記錄檔中以純文字形式公開值。 CloudTrail

  • 您希望控制哪些使用者可以存取敏感資料。

  • 您希望能夠在存取敏感資料時進行稽核 (CloudTrail)。

  • 您希望將敏感資料加密,而且您希望使用自己的加密金鑰來管理存取。

重要

僅加密 SecureString 參數的。參數名稱、說明和其他屬性不會加密。

您可以將SecureString參數類型用於要加密的文字資料,例如密碼、應用程式密碼、機密組態資料或任何其他要保護的資料類型。 SecureString數據使用密 AWS KMS 鑰進行加密和解密。您可以使用提供的預設 KMS 金鑰,也可以建立並使用您自己的 KMS 金鑰 AWS KMS key。 AWS (如果想限制使用者對 SecureString 參數的存取,請使用您自己的 AWS KMS key 。如需詳細資訊,請參閱 使用 AWS 預設金鑰和客戶受管金鑰的 IAM 許可。)

您也可以將SecureString參數與其他參數一起使用 AWS services。在下列範例中,Lambda 函數會使用 GetParametersAPI 擷取SecureString參數。

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 開發人員指南》中的識別對稱鍵和非對稱金鑰

建立SecureString參數不會收取Parameter Store任何費用,但需要支付使用 AWS KMS 加密的費用。如需相關資訊,請參閱 AWS Key Management Service 定價

如需有關 AWS 受管金鑰 和客戶管理金鑰的詳細資訊,請參閱AWS Key Management Service 開發人員指南中的AWS Key Management Service 概念。如需有關Parameter Store和 AWS KMS 加密的詳細資訊,請參閱如何 AWS Systems ManagerParameter Store使用 AWS KMS

注意

若要檢視 AWS 受管金鑰,請使用 AWS KMS DescribeKey作業。此 AWS Command Line Interface (AWS CLI) 範例用DescribeKey來檢視 AWS 受管金鑰.

aws kms describe-key --key-id alias/aws/ssm