AWS Systems Manager 參數存放區 - AWS Systems Manager

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

AWS Systems Manager 參數存放區

AWS Systems Manager 參數存放區 提供安全的階層式儲存空間,進行組態資料管理和秘密管理。您可以將密碼、資料庫字串、Amazon Machine Image (AMI) ID,以及授權碼之類的資料存放為參數值。您存放的值可以是純文字或加密資料。您可以使用您在建立參數時指定的唯一名稱,在您的指令碼、命令、SSM 文件,以及組態和自動化工作流程中參考 Systems Manager 參數。

注意

若要實作密碼循環生命週期,請使用 AWS Secrets Manager。Secrets Manager 可讓您輕鬆地輪換、管理及擷取資料庫認證、API 金鑰及其他秘密,以及整個其生命週期。如需詳細資訊,請參閱 AWS Secrets Manager 使用者指南中的什麼是 AWS Secrets Manager?

參數存放區 對我的組織有何好處?

參數存放區 提供這些好處:

  • 您可以使用安全、可擴展的主控秘密管理服務,無需管理伺服器。

  • 隔離您的資料與程式碼以改善您的安全態勢。

  • 將組態資料和加密字串存放在階層和追蹤版本中。

  • 以精細分級控制及稽核存取。

誰應該使用參數存放區?

  • 任何想要以集中方式管理組態資料的 AWS 使用者。

  • 想要輕鬆存放不同登入和參考串流的軟體開發人員。

  • 想要在變更已 (或尚未) 秘密和密碼變更時收到通知的管理員。

有哪些功能?參數存放區?

  • 變更通知

    您可以同時為參數和參數政策設定變更通知和觸發自動化動作。如需詳細資訊,請參閱「根據參數存放區事件設定通知或觸發動作.

  • 整理和控制存取

    您可以單獨標記參數,根據指派給參數的標籤協助您快速找出一或多個參數。例如,您可以為特定的環境、部門、使用者、群組或期間來標記參數。您也可以建立 IAM 政策來限定使用者或族群可存取的標籤,藉此限制參數的存取。如需詳細資訊,請參閱「標記 Systems Manager 參數.

  • 標籤版本

    您可以透過建立標籤,為參數的版本關聯 alias。當有多個版本時,標籤可協助您記住參數版本的目的。

  • 資料驗證

    您可以建立參數來指向 Amazon EC2 執行個體,而 參數存放區 將驗證這些參數,以確保其參考預期的資源類型、資源存在,以及該使用者具有使用資源的許可。例如,您可以將 Amazon Machine Image (AMI) ID 做為 aws:ec2:image 資料類型的值來建立參數,而 參數存放區 會執行非同步驗證操作以確保參數值符合 AMI ID 的格式需求,而且指定的 AMI 可用於您的 AWS 帳號。

  • 參考秘密

    參數存放區 與 AWS Secrets Manager 整合,因此您可以在使用其他已支援參考 AWS 參數的 參數存放區 服務時,擷取 Secrets Manager 的秘密。

  • 從其他 AWS 服務存取

    您可以使用 參數存放區 參數與其他 Systems Manager 功能和 AWS 服務,從中央存放區擷取秘密和組態資料。參數與 Systems Manager 功能 (例如 Run Command、狀態管理員 和自動化) 搭配使用。您也可以參考許多其他 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 服務的整合,以進行加密、通知、監控和稽核:

何謂參數?

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

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

{{ssm:parameter-name}}

注意

參數不能被引用或嵌套在其他參數的值中。您不能在參數值中包含 {{}}{{ssm:parameter-name}}

參數存放區支援三種參數:StringStringListSecureString.

除了一個例外,當您建立或更新參數時,您將參數值輸入為純文字,而且 參數存放區 不會對輸入的文字執行驗證。但是,對於 String 參數,您可以將資料類型指定為 aws:ec2:image,而 參數存放區 便會驗證您輸入的數值是否為 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 服務中使用資料/參數,而不會在命令、函數、代理程式日誌或 AWS CloudTrail 日誌中以純文字暴露其值。

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

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

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

重要

只有 SecureString 參數的會加密。參數名稱、描述和其他屬性,則不會受到加密。

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

您也可以搭配其他 SecureString 服務來使用 AWS 參數。在下列範例中,AWS Lambda 函數使用 SecureStringGetParameters 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 Secrets Manager 整合。當您使用已支援參考 Secrets Manager 參數的其他 AWS 服務時,您可以擷取 參數存放區 秘密。如需詳細資訊,請參閱本指南中的參考AWS Secrets Manager參數中的 參數存放區 秘密

AWS KMS 加密和定價

如果您在建立參數時選擇 SecureString 參數類型,Systems Manager 會使用 AWS Key Management Service (KMS) 來加密參數值。

建立 參數存放區 參數不會收取 SecureString 費用,但會收取使用 AWS Key Management Service 加密的費用。如需相關資訊,請參閱 AWS Key Management Service 定價.

如需 AWS 受管和自訂受管 CMK 的詳細資訊,請前往 中 AWS Key Management Service 的概念AWS Key Management Service Developer Guide如需關於 參數存放區 和 KMS 加密的詳細資訊,請參閱 AWS Systems Manager 參數存放區 如何使用 AWS KMS.

注意

若要檢視 AWS 受管 CMK,請使用 AWS KMS DescribeKey 操作。此 AWS CLI 範例使用 DescribeKey 檢視和 AWS 受管 CMK。

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

相關主題

如需如何建立和使用 SecureString 參數的範例,請參閱建立 SecureString 參數,並將執行個體加入網域 (PowerShell). 如需有關搭配其他 Systems Manager 服務使用 AWS 參數的詳細資訊,請查看以下部落格文章: