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 服務 時,擷取 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 服務 時,您可以擷取 Secrets Manager 秘密。

  • 從其他 AWS 服務 存取

    您可以使用 Parameter Store 參數與其他 Systems Manager 功能和 AWS 服務,從集中存放區擷取秘密和組態資料。參數可搭配 Systems Manager 的功能使用,例如 Run Command、Automation 及 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 服務 的整合,以進行加密、通知、監控和稽核:

什麼是參數?

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 參數是由您輸入的任何文字區塊組成。例如:

  • 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 服務 中使用資料/參數,而不會在命令、函數、代理程式日誌或 CloudTrail 日誌中以純文字暴露其值。

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

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

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

重要

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

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

您也可以搭配其他 AWS 服務 來使用 SecureString 參數。在下列範例中,Lambda 函數使用 GetParameters API 擷取 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