指派參數政策 - AWS Systems Manager

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

指派參數政策

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

注意

若要實作密碼輪替生命週期,請使用。 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) 個政策指派給一個參數。

下列範例顯示 PutParameterAPI 要求的要求語法,該要求會將四個原則指派給名為的新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 Manager 控台,網址為 https://console.aws.amazon.com/systems-manager/

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

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

  4. 選擇 Advanced (進階)

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

  6. 選擇儲存變更

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

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

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

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

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

將政策新增至現有參數
  1. 安裝和配置 AWS Command Line Interface (AWS CLI),如果你還沒有。

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

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

將原則新增至現有參數 (適用於 Windows 的工具 PowerShell)

使用下列程序,使用 Windows 專用的工具將原則新增至現有參數 PowerShell。將每個範例資源預留位置取代為您自己的資訊。

將政策新增至現有參數
  1. 開啟適用於 Windows 的工具, PowerShell 然後執行下列命令來指定您的認證。您必須擁有 Amazon Elastic Compute Cloud (Amazon EC2) 中的管理員許可,或者您必須在 AWS Identity and Access Management (IAM) 中獲得適當的許可。

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