指派參數政策 - AWS Systems Manager

指派參數政策

參數政策讓您可以將特定條件 (例如過期日期或存留時間) 指派給一個參數,以協助您管理一群不斷增長的參數。參數政策對於強制更新或刪除密碼和儲存於 Parameter Store (AWS Systems Manager 的一項功能) 中的組態資料特別有幫助。Parameter Store 提供以下政策類型:ExpirationExpirationNotificationNoChangeNotification

注意

若要實作密碼輪換生命週期,請使用 AWS Secrets Manager。您可以使用 Secrets Manager 在資料庫登入資料、API 金鑰和其他機密的整個生命週期輕鬆進行輪換、管理和擷取。如需詳細資訊,請參閱《AWS Secrets Manager 使用者指南》中的什麼是 AWS Secrets Manager?

Parameter Store 使用非同步、定期掃描,強制執行參數政策。建立政策之後,您不需要執行額外的動作,即可強制執行政策。Parameter Store 會依據您指定的條件,獨立執行由政策定義的動作。

注意

參數政策適用於使用進階參數方案的參數。如需詳細資訊,請參閱 管理參數層

參數政策為一 JSON 陣列,如下表所示。當您建立新的進階參數時,可以指派政策,或藉由更新參數來指派政策。Parameter Store 支援以下類型的參數政策。

政策 詳細資訊 範例

Expiration

此政策會刪除參數。您可以透過使用 ISO_INSTANT 格式或 ISO_OFFSET_DATE_TIME 格式來指定特定的日期和時間。若要變更您希望參數被刪除的時間,請更新政策。更新參數不會影響過期日期或連接到它的政策。到達過期日期和時間時,Parameter Store 會刪除參數。

注意

此範例使用 ISO_INSTANT 格式。您也可以透過使用 ISO_OFFSET_DATE_TIME 格式來指定日期和時間。請見此處範例:2019-11-01T22:13:48.87+10:30:00

{ "Type": "Expiration", "Version": "1.0", "Attributes": { "Timestamp": "2018-12-02T21:34:33.000Z" } }

ExpirationNotification

此政策在 Amazon EventBridge (EventBridge) 中啟動事件,藉此通知您有關過期的資訊。使用此政策,您可以在過期時間到達之前接收到通知,以天或小時為單位。

{ "Type": "ExpirationNotification", "Version": "1.0", "Attributes": { "Before": "15", "Unit": "Days" } }

NoChangeNotification

如果在指定的時間段沒有修改參數,此政策會啟動 EventBridge 中的事件。例如,當密碼必須在一時間段內變更時,此一政策類型就很有用。

此政策會讀取參數的 LastModifiedTime 屬性,以決定何時傳送通知。如果您變更或編輯參數,系統會依據 LastModifiedTime 的新值重設通知的時間間隔。

{ "Type": "NoChangeNotification", "Version": "1.0", "Attributes": { "After": "20", "Unit": "Days" } }

您可以將多個政策指派給一個參數。例如,您可以指派 ExpirationExpirationNotification 政策,讓系統觸發 EventBridge 事件來通知您參數即將刪除。您最多可以將十 (10) 個政策指派給一個參數。

以下範例顯示 PutParameter API 請求語法,該請求會將四個政策指派給新的 SecureString 參數,名為 ProdDB3

{ "Name": "ProdDB3", "Description": "Parameter with policies", "Value": "P@ssW*rd21", "Type": "SecureString", "Overwrite": "True", "Policies": [ { "Type": "Expiration", "Version": "1.0", "Attributes": { "Timestamp": "2018-12-02T21:34:33.000Z" } }, { "Type": "ExpirationNotification", "Version": "1.0", "Attributes": { "Before": "30", "Unit": "Days" } }, { "Type": "ExpirationNotification", "Version": "1.0", "Attributes": { "Before": "15", "Unit": "Days" } }, { "Type": "NoChangeNotification", "Version": "1.0", "Attributes": { "After": "20", "Unit": "Days" } } ] }

將政策新增至現有參數

本節包含如何使用 AWS Systems Manager 主控台、AWS Command Line Interface (AWS CLI) 和 AWS Tools for Windows PowerShell,將政策新增至現有參數的資訊。如需關於如何建立包含政策的新參數的資訊,請參閱 建立 Systems Manager 參數

將政策新增至現有參數 (主控台)

請使用下列程序,以使用 Systems Manager 主控台,將政策新增至現有參數。

將政策新增至現有參數

  1. 開啟位於 AWS Systems Managerhttps://console.aws.amazon.com/systems-manager/ 的 主控台。https://console.aws.amazon.com/systems-manager/

  2. 在導覽窗格中,選擇 Parameter Store

    -或-

    如果 AWS Systems Manager 首頁先開啟,選擇選單圖示 ( ) 以開啟導覽窗格,然後選擇 Parameter Store

  3. 選擇您要更新之參數旁的選項,以納入政策,然後選擇 Edit (編輯)

  4. 選擇 Advanced (進階)

  5. (選用) 在 Parameter policies (參數政策) 部分,請選擇 Enabled (啟用)。您可以為該參數指定過期日期和一個或多個通知政策。

  6. 選擇 Save changes (儲存變更)。

重要
  • Parameter Store 會保留參數的政策,直到您用新的政策覆寫該政策或將其移除。

  • 若要從現有參數中移除所有政策,請編輯參數,並使用括弧和大括號套用空的政策,如以下所示:[{}]

  • 如果您將新政策新增至已經有政策的參數,則 Systems Manager 會覆寫連接到該參數的政策。現有的政策會被刪除。如果您想要將政策新增至已經有一個或多個政策的參數,則複製並貼上原有的政策,輸入新的政策,然後儲存您的變更。

將政策新增至現有參數 (AWS CLI)

請使用下列步驟,利用 AWS CLI 將政策新增至現有參數。

將政策新增至現有參數

  1. 如果您尚未安裝並設定 AWS Command Line Interface (AWS CLI),請進行相應的操作。

    如需相關資訊,請參閱安裝或升級 AWS 命令列工具

  2. 執行以下命令,將政策新增至現有參數。將每個範例資源預留位置取代為您自己的資訊。

    Linux & macOS
    aws ssm put-parameter --name "parameter name" \ --value 'parameter value' \ --type parameter type \ --overwrite \ --policies "[{policies-enclosed-in-brackets-and-curly-braces}]"
    Windows
    aws ssm put-parameter --name "parameter name" ^ --value 'parameter value' ^ --type parameter type ^ --overwrite ^ --policies "[{policies-enclosed-in-brackets-and-curly-braces}]"

    以下範例包含過期政策,該政策在 15 天之後會將參數刪除。此範例也包含通知政策,該政策會在參數被刪除的五 (5) 天以前產生 EventBridge 事件。最後,它包含 NoChangeNotification 政策,如果 60 天之後該參數沒有變更。此範例使用混淆代碼名稱 (3l3vat3131) 做為密碼參數,並使用 AWS Key Management Service AWS KMS key。如需 AWS KMS keys 的詳細資訊,請參閱《AWS Key Management Service 開發人員指南》中的 AWS Key Management Service 概念

    Linux & macOS
    aws ssm put-parameter \ --name "/Finance/Payroll/3l3vat3131" \ --value "P@sSwW)rd" \ --type "SecureString" \ --overwrite \ --policies "[{\"Type\":\"Expiration\",\"Version\":\"1.0\",\"Attributes\":{\"Timestamp\":\"2020-05-13T00:00:00.000Z\"}},{\"Type\":\"ExpirationNotification\",\"Version\":\"1.0\",\"Attributes\":{\"Before\":\"5\",\"Unit\":\"Days\"}},{\"Type\":\"NoChangeNotification\",\"Version\":\"1.0\",\"Attributes\":{\"After\":\"60\",\"Unit\":\"Days\"}}]"
    Windows
    aws ssm put-parameter ^ --name "/Finance/Payroll/3l3vat3131" ^ --value "P@sSwW)rd" ^ --type "SecureString" ^ --overwrite ^ --policies "[{\"Type\":\"Expiration\",\"Version\":\"1.0\",\"Attributes\":{\"Timestamp\":\"2020-05-13T00:00:00.000Z\"}},{\"Type\":\"ExpirationNotification\",\"Version\":\"1.0\",\"Attributes\":{\"Before\":\"5\",\"Unit\":\"Days\"}},{\"Type\":\"NoChangeNotification\",\"Version\":\"1.0\",\"Attributes\":{\"After\":\"60\",\"Unit\":\"Days\"}}]"
  3. 執行以下命令,以驗證參數的詳細資訊。將參數名稱取代為您自己的資訊。

    Linux & macOS
    aws ssm describe-parameters \ --parameter-filters "Key=Name,Values=parameter name"
    Windows
    aws ssm describe-parameters ^ --parameter-filters "Key=Name,Values=parameter name"
重要
  • Parameter Store 會保留參數的政策,直到您用新的政策覆寫該政策或將其移除。

  • 若要從現有參數中移除所有的政策,請編輯該參數,並套用由括弧和大括號組成的空白政策。將每個範例資源預留位置取代為您自己的資訊。例如:

    Linux & macOS
    aws ssm put-parameter \ --name parameter name \ --type parameter type \ --value 'parameter value' \ --policies "[{}]"
    Windows
    aws ssm put-parameter ^ --name parameter name ^ --type parameter type ^ --value 'parameter value' ^ --policies "[{}]"
  • 如果您將新政策新增至已經有政策的參數,則 Systems Manager 會覆寫連接到該參數的政策。現有的政策會被刪除。如果您想要將政策新增至已經有一個或多個政策的參數,則複製並貼上原有的政策,輸入新的政策,然後儲存您的變更。

將政策新增至現有參數 (Tools for Windows PowerShell)

請使用下列程序,以使用 Tools for Windows PowerShell,將政策新增至現有參數。將每個範例資源預留位置取代為您自己的資訊。

將政策新增至現有參數

  1. 開啟 Tools for Windows PowerShell 並執行以下命令,以指定您的登入資料。您必須在 Amazon Elastic Compute Cloud (Amazon EC2) 中具備管理員權限,或已在 AWS Identity and Access Management (IAM) 中獲得適當許可。如需詳細資訊,請參閱 Systems Manager 先決條件

    Set-AWSCredentials ` –AccessKey access-key-name ` –SecretKey secret-key-name
  2. 執行以下命令,以設定 PowerShell 工作階段的區域。此範例會使用美國東部 (俄亥俄) 區域 (US-east-2)。

    Set-DefaultAWSRegion ` -Region us-east-2
  3. 執行以下命令,將政策新增至現有參數。將每個範例資源預留位置取代為您自己的資訊。

    Write-SSMParameter ` -Name "parameter name" ` -Value "parameter value" ` -Type "parameter type" ` -Policies "[{policies-enclosed-in-brackets-and-curly-braces}]" ` -Overwrite

    以下的範例包含過期政策,該政策將在 2020 年 5 月 13 日的午夜 (GMT) 將參數刪除。此範例也包含通知政策,該政策會在參數被刪除的五 (5) 天以前產生 EventBridge 事件。最後,它包含 NoChangeNotification 政策,如果 60 天之後該參數沒有變更。此範例使用混淆代碼名稱 (3l3vat3131) 作為密碼參數,並使用 AWS 受管金鑰。

    Write-SSMParameter ` -Name "/Finance/Payroll/3l3vat3131" ` -Value "P@sSwW)rd" ` -Type "SecureString" ` -Policies "[{\"Type\":\"Expiration\",\"Version\":\"1.0\",\"Attributes\":{\"Timestamp\":\"2018-05-13T00:00:00.000Z\"}},{\"Type\":\"ExpirationNotification\",\"Version\":\"1.0\",\"Attributes\":{\"Before\":\"5\",\"Unit\":\"Days\"}},{\"Type\":\"NoChangeNotification\",\"Version\":\"1.0\",\"Attributes\":{\"After\":\"60\",\"Unit\":\"Days\"}}]" ` -Overwrite
  4. 執行以下命令,以驗證參數的詳細資訊。將參數名稱取代為您自己的資訊。

    (Get-SSMParameterValue -Name "parameter name").Parameters
重要
  • Parameter Store 會保留參數的政策,直到您用新的政策覆寫該政策或將其移除。

  • 若要從現有參數中移除所有的政策,請編輯該參數,並套用由括弧和大括號組成的空白政策。例如:

    Write-SSMParameter ` -Name "parameter name" ` -Value "parameter value" ` -Type "parameter type" ` -Policies "[{}]"
  • 如果您將新政策新增至已經有政策的參數,則 Systems Manager 會覆寫連接到該參數的政策。現有的政策會被刪除。如果您想要將政策新增至已經有一個或多個政策的參數,則複製並貼上原有的政策,輸入新的政策,然後儲存您的變更。