建立 Parameter Store 使用 參數 AWS CLI - AWS Systems Manager

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

建立 Parameter Store 使用 參數 AWS CLI

您可以使用 AWS Command Line Interface (AWS CLI) 來建立 StringStringListSecureString 參數類型。刪除參數後,請等待至少 30 秒以建立具有相同名稱的參數。

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

注意

參數僅適用於建立參數 AWS 區域 的 。

使用 建立String參數 AWS CLI

  1. 如果您尚未安裝和設定 AWS Command Line Interface (AWS CLI),請執行 。

    如需相關資訊,請參閱安裝或更新最新版本的 AWS CLI

  2. 請執行以下命令以建立 String-類參數。取代每個 example resource placeholder 使用您自己的資訊。

    Linux & macOS
    aws ssm put-parameter \ --name "parameter-name" \ --value "parameter-value" \ --type String \ --tags "Key=tag-key,Value=tag-value"
    Windows
    aws ssm put-parameter ^ --name "parameter-name" ^ --value "parameter-value" ^ --type String ^ --tags "Key=tag-key,Value=tag-value"

    -或-

    執行下列命令,以建立包含 的參數 Amazon Machine Image (AMI) ID 作為參數值。

    Linux & macOS
    aws ssm put-parameter \ --name "parameter-name" \ --value "an-AMI-id" \ --type String \ --data-type "aws:ec2:image" \ --tags "Key=tag-key,Value=tag-value"
    Windows
    aws ssm put-parameter ^ --name "parameter-name" ^ --value "an-AMI-id" ^ --type String ^ --data-type "aws:ec2:image" ^ --tags "Key=tag-key,Value=tag-value"

    --name 選項支援階層。如需有關階層的詳細資訊,請參閱在 中使用參數階層 Parameter Store

    只有在您建立的參數包含 時,才必須指定 --data-type選項 AMI ID。它驗證您輸入的參數值是否為正確格式的 Amazon Elastic Compute Cloud (AmazonEC2) AMI ID。對於所有其他參數,預設資料類型為 text,可選擇指定一個值。如需詳細資訊,請參閱在 中使用原生參數支援 Parameter Store 適用於 Amazon Machine Image IDs

    重要

    如果成功,該命令將會傳回參數的版本號碼。例外狀況:如果您已將 aws:ec2:image 指定為資料類型,則回應中的新版本號碼並不表示參數值已經過驗證。如需詳細資訊,請參閱在 中使用原生參數支援 Parameter Store 適用於 Amazon Machine Image IDs

    此範例將兩個索引鍵/值對標籤新增至參數。

    Linux & macOS
    aws ssm put-parameter \ --name parameter-name \ --value "parameter-value" \ --type "String" \ --tags '[{"Key":"Region","Value":"East"},{"Key":"Environment", "Value":"Production"}]'
    Windows
    aws ssm put-parameter ^ --name parameter-name ^ --value "parameter-value" ^ --type "String" ^ --tags [{\"Key\":\"Region1\",\"Value\":\"East1\"},{\"Key\":\"Environment1\",\"Value\":\"Production1\"}]

    以下範例在名稱中使用參數階層來建立純文字 String 參數。傳回參數的版本號碼。如需參數階層的詳細資訊,請參閱在 中使用參數階層 Parameter Store

    Linux & macOS

    不在階層中的參數

    aws ssm put-parameter \ --name "golden-ami" \ --type "String" \ --value "ami-12345abcdeEXAMPLE"

    在階層中的參數

    aws ssm put-parameter \ --name "/amis/linux/golden-ami" \ --type "String" \ --value "ami-12345abcdeEXAMPLE"
    Windows

    不在階層中的參數

    aws ssm put-parameter ^ --name "golden-ami" ^ --type "String" ^ --value "ami-12345abcdeEXAMPLE"

    在階層中的參數

    aws ssm put-parameter ^ --name "/amis/windows/golden-ami" ^ --type "String" ^ --value "ami-12345abcdeEXAMPLE"
  3. 執行下列命令以檢視最新的參數值,並確認新參數的詳細資訊。

    aws ssm get-parameters --names "/Test/IAD/helloWorld"

    系統會傳回相關資訊,如下所示。

    {
        "InvalidParameters": [],
        "Parameters": [
            {            
                "Name": "/Test/IAD/helloWorld",
                "Type": "String",
                "Value": "My updated parameter value",
                "Version": 2,
                "LastModifiedDate": "2020-02-25T15:55:33.677000-08:00",
                "ARN": "arn:aws:ssm:us-east-2:123456789012:parameter/Test/IAD/helloWorld"            
            }
        ]
    }

執行以下命令,以變更參數值。傳回參數的版本號碼。

aws ssm put-parameter --name "/Test/IAD/helloWorld" --value "My updated 1st parameter" --type String --overwrite

執行以下命令,以檢視參數值的歷程記錄。

aws ssm get-parameter-history --name "/Test/IAD/helloWorld"

執行以下命令,以便在命令中使用此參數。

aws ssm send-command --document-name "AWS-RunShellScript" --parameters '{"commands":["echo {{ssm:/Test/IAD/helloWorld}}"]}' --targets "Key=instanceids,Values=instance-ids"

如果您只想擷取參數值,請執行下列命令。

aws ssm get-parameter --name testDataTypeParameter --query "Parameter.Value"

如果您只想使用 get-parameters 來擷取參數值,請執行下列命令。

aws ssm get-parameters --names "testDataTypeParameter" --query "Parameters[*].Value"

執行以下命令,以檢視參數中繼資料。

aws ssm describe-parameters --filters "Key=Name,Values=/Test/IAD/helloWorld"
注意

名稱 必須是大寫。

系統會傳回相關資訊,如下所示。

{
    "Parameters": [
        {
            "Name": "helloworld",
            "Type": "String",
            "LastModifiedUser": "arn:aws:iam::123456789012:user/JohnDoe",
            "LastModifiedDate": 1494529763.156,
            "Version": 1,
            "Tier": "Standard",
            "Policies": []           
        }
    ]
}

使用 建立StringList參數 AWS CLI

  1. 如果您尚未安裝和設定 AWS Command Line Interface (AWS CLI),請執行 。

    如需相關資訊,請參閱安裝或更新最新版本的 AWS CLI

  2. 請執行以下命令以建立參數。取代每個 example resource placeholder 使用您自己的資訊。

    Linux & macOS
    aws ssm put-parameter \ --name "parameter-name" \ --value "a-comma-separated-list-of-values" \ --type StringList \ --tags "Key=tag-key,Value=tag-value"
    Windows
    aws ssm put-parameter ^ --name "parameter-name" ^ --value "a-comma-separated-list-of-values" ^ --type StringList ^ --tags "Key=tag-key,Value=tag-value"
    注意

    如果成功,該命令將會傳回參數的版本號碼。

    此範例將兩個索引鍵/值組新增至參數。根據您的本機電腦的作業系統類型,執行以下其中一個命令。從區域 Windows 機器運行的版本包含從命令列工具執行命令所需的逸出字元 ("\"))。

    以下是使用參數階層的 StringList 範例。

    Linux & macOS
    aws ssm put-parameter \ --name /IAD/ERP/Oracle/addUsers \ --value "Milana,Mariana,Mark,Miguel" \ --type StringList
    Windows
    aws ssm put-parameter ^ --name /IAD/ERP/Oracle/addUsers ^ --value "Milana,Mariana,Mark,Miguel" ^ --type StringList
    注意

    StringList 中的項目必須以逗號 (,) 分隔。您無法使用其他標點符號或特殊字元來逸出此清單中的項目。如果您有個參數值需要逗號,那麼請使用 String 資料類型。

  3. 執行 get-parameters 命令,以確認參數的詳細資訊。例如:

    aws ssm get-parameters --name "/IAD/ERP/Oracle/addUsers"

使用 建立 SecureString參數 AWS CLI

使用下列程序建立 SecureString 參數。取代每個 example resource placeholder 使用您自己的資訊。

重要

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

重要

Parameter Store 僅支援對稱加密KMS金鑰 。您不能使用非對稱加密KMS金鑰來加密參數。如需協助判斷KMS金鑰是對稱或非對稱,請參閱 AWS Key Management Service 開發人員指南中的識別對稱和非對稱KMS金鑰

  1. 如果您尚未安裝和設定 AWS Command Line Interface (AWS CLI),請執行 。

    如需相關資訊,請參閱安裝或更新最新版本的 AWS CLI

  2. 執行以下其中個命令,以建立使用 SecureString 資料類型的參數。

    Linux & macOS

    使用預設值建立SecureString參數 AWS 受管金鑰

    aws ssm put-parameter \ --name "parameter-name" \ --value "parameter-value" \ --type "SecureString"

    建立使用自訂受管金鑰的 SecureString 參數

    aws ssm put-parameter \ --name "parameter-name" \ --value "a-parameter-value, for example P@ssW%rd#1" \ --type "SecureString" --tags "Key=tag-key,Value=tag-value"

    建立使用自訂 AWS KMS 金鑰的SecureString參數

    aws ssm put-parameter \ --name "parameter-name" \ --value "a-parameter-value, for example P@ssW%rd#1" \ --type "SecureString" \ --key-id "your-account-ID/the-custom-AWS KMS-key" \ --tags "Key=tag-key,Value=tag-value"
    Windows

    使用預設值建立SecureString參數 AWS 受管金鑰

    aws ssm put-parameter ^ --name "parameter-name" ^ --value "parameter-value" ^ --type "SecureString"

    建立使用自訂受管金鑰的 SecureString 參數

    aws ssm put-parameter ^ --name "parameter-name" ^ --value "a-parameter-value, for example P@ssW%rd#1" ^ --type "SecureString" ^ --tags "Key=tag-key,Value=tag-value"

    建立使用自訂 AWS KMS 金鑰的SecureString參數

    aws ssm put-parameter ^ --name "parameter-name" ^ --value "a-parameter-value, for example P@ssW%rd#1" ^ --type "SecureString" ^ --key-id " ^ --tags "Key=tag-key,Value=tag-value"account-ID/the-custom-AWS KMS-key"

    如果您在帳戶和區域中使用 AWS 受管金鑰 金鑰 建立 SecureString 參數,則必提供 --key-id 參數的值。

    注意

    若要使用 AWS KMS key 指派給 AWS 帳戶 和 的 AWS 區域,請從 命令中移除 key-id 參數。如需 AWS KMS keys的詳細資訊,請參閱《AWS Key Management Service 開發人員指南》中的 AWS Key Management Service 概念

    若要使用客戶受管金鑰而非 AWS 受管金鑰 指派給您帳戶的 ,請使用 --key-id 參數指定金鑰。參數支援下列KMS參數格式。

    • 主要 Amazon Resource Name (ARN) 範例:

      arn:aws:kms:us-east-2:123456789012:key/key-id

    • 別名ARN範例:

      arn:aws:kms:us-east-2:123456789012:alias/alias-name

    • Key ID 範例:

      12345678-1234-1234-1234-123456789012

    • 別名範例:

      alias/MyAliasName

    您可以使用 AWS Management Console 或 AWS KMS 建立客戶受管金鑰API。下列 AWS CLI 命令會在 AWS 區域 的目前 中建立客戶受管金鑰 AWS 帳戶。

    aws kms create-key

    使用以下格式的命令,以您剛建立的金鑰建立 SecureString 參數。

    以下範例使用混淆代碼名稱 (3l3vat3131) 作為密碼參數,並使用 AWS KMS key。

    Linux & macOS
    aws ssm put-parameter \ --name /Finance/Payroll/3l3vat3131 \ --value "P@sSwW)rd" \ --type SecureString \ --key-id arn:aws:kms:us-east-2:123456789012:key/1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e
    Windows
    aws ssm put-parameter ^ --name /Finance/Payroll/3l3vat3131 ^ --value "P@sSwW)rd" ^ --type SecureString ^ --key-id arn:aws:kms:us-east-2:123456789012:key/1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e
  3. 執行以下命令,以驗證參數的詳細資訊。

    如果您未指定 with-decryption 參數,或者如果您指定 no-with-decryption 參數, 命令會傳回加密的 GUID。

    Linux & macOS
    aws ssm get-parameters \ --name "the-parameter-name-you-specified" \ --with-decryption
    Windows
    aws ssm get-parameters ^ --name "the-parameter-name-you-specified" ^ --with-decryption
  4. 執行以下命令,以檢視參數中繼資料。

    Linux & macOS
    aws ssm describe-parameters \ --filters "Key=Name,Values=the-name-that-you-specified"
    Windows
    aws ssm describe-parameters ^ --filters "Key=Name,Values=the-name-that-you-specified"
  5. 如果您使用客戶受管 AWS KMS key,請執行下列命令以變更參數值。

    Linux & macOS
    aws ssm put-parameter \ --name "the-name-that-you-specified" \ --value "a-new-parameter-value" \ --type "SecureString" \ --overwrite
    Windows
    aws ssm put-parameter ^ --name "the-name-that-you-specified" ^ --value "a-new-parameter-value" ^ --type "SecureString" ^ --overwrite

    -或-

    如果您使用客戶受管 AWS KMS key,請執行下列命令之一以變更參數值。

    Linux & macOS
    aws ssm put-parameter \ --name "the-name-that-you-specified" \ --value "a-new-parameter-value" \ --type "SecureString" \ --key-id "the-KMSkey-ID" \ --overwrite
    aws ssm put-parameter \ --name "the-name-that-you-specified" \ --value "a-new-parameter-value" \ --type "SecureString" \ --key-id "account-alias/the-KMSkey-ID" \ --overwrite
    Windows
    aws ssm put-parameter ^ --name "the-name-that-you-specified" ^ --value "a-new-parameter-value" ^ --type "SecureString" ^ --key-id "the-KMSkey-ID" ^ --overwrite
    aws ssm put-parameter ^ --name "the-name-that-you-specified" ^ --value "a-new-parameter-value" ^ --type "SecureString" ^ --key-id "account-alias/the-KMSkey-ID" ^ --overwrite
  6. 執行以下命令,以檢視最新的參數值。

    Linux & macOS
    aws ssm get-parameters \ --name "the-name-that-you-specified" \ --with-decryption
    Windows
    aws ssm get-parameters ^ --name "the-name-that-you-specified" ^ --with-decryption
  7. 執行以下命令,以檢視參數值的歷程記錄。

    Linux & macOS
    aws ssm get-parameter-history \ --name "the-name-that-you-specified"
    Windows
    aws ssm get-parameter-history ^ --name "the-name-that-you-specified"
注意

您可以手動建立具有加密值的參數。在此案例中,因為值已加密,您無需選擇 SecureString 參數類型。如果您選擇 SecureString,您的參數將被加密兩次。

依預設,所有 SecureString 值都顯示為加密文字。若要解密SecureString值,使用者必須具有呼叫 AWS KMS 解密API操作的許可。如需有關設定 AWS KMS 存取控制的資訊,請參閱《AWS Key Management Service 開發人員指南》中的 ​ AWS KMS的身分驗證與存取控制

重要

如果您變更用於加密參數之KMS金鑰的KMS金鑰別名,則也必須更新參數用於參考 的金鑰別名 AWS KMS。這僅適用於KMS金鑰別名;除非您刪除整個金鑰,否則別名所連接的金鑰 ID 會保持不變。

使用 建立多行參數 AWS CLI

您可以使用 AWS CLI 建立具有換行次數的參數。使用分行符號來分割較長參數值中的文字以提高可讀性,或者更新網頁的多段落參數內容。您可以在JSON檔案中包含內容並使用 --cli-input-json選項,使用折線字元,如 所示\n,如下列範例所示。

  1. 如果您尚未安裝和設定 AWS Command Line Interface (AWS CLI),請執行 。

    如需相關資訊,請參閱安裝或更新最新版本的 AWS CLI

  2. 執行下列命令以建立多列參數。

    Linux & macOS
    aws ssm put-parameter \ --name "MultiLineParameter" \ --type String \ --cli-input-json file://MultiLineParameter.json
    Windows
    aws ssm put-parameter ^ --name "MultiLineParameter" ^ --type String ^ --cli-input-json file://MultiLineParameter.json

    下列範例顯示 MultiLineParameter.json 檔案的內容。

    { "Value": "<para>Paragraph One</para>\n<para>Paragraph Two</para>\n<para>Paragraph Three</para>" }

儲存的參數值存放如下。

<para>Paragraph One</para>
<para>Paragraph Two</para>
<para>Paragraph Three</para>