指派參數政策 - AWS Systems Manager

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

指派參數政策

參數政策讓您可以將特定條件 (例如過期日期或 生存期間) 指派給一個參數,以協助您管理一群不斷增長的參數。參數政策尤其協助您更新或删除在 參數存放區 中存放的密碼和組態資料。參數存放區 提供下列政策類型: ExpirationExpirationNotificationNoChangeNotification。 本節將詳細介紹這些政策。

注意

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

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

注意

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

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

Policy 詳細資訊 範例

Expiration

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

注意

此範例使用 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 中觸發事件,通知您有關過期的訊息。使用此政策,您可以在過期時間到達之前接收到通知,以天或小時為單位。

{ "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 參數。

PutParameterRequest { "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 CLI 和 適用於 Windows PowerShell 的 AWS 工具,將政策新增至現有參數的資訊。如需關於如何建立包含政策的新參數的資訊,請參閱 建立 Systems Manager 參數

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

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

將政策新增至現有參數

  1. https://console.aws.amazon.com/systems-manager/,開啟 AWS Systems Manager 主控台。

  2. 在導覽窗格中,選擇 參數存放區

    -或-

    如果 AWS Systems Manager 首頁先開啟,請選擇選單圖示 ( ) 以開啟導覽窗格,然後選擇 參數存放區

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

  4. 選擇 Advanced (進階)。

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

  6. 選擇 Save Changes (儲存變更)

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

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

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

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

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

將政策新增至現有參數

  1. 如果您尚未安裝並設定 AWS CLI,請進行相應的作業。

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

  2. 執行以下命令,將政策新增至現有參數。

    Linux
    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) 客戶主金鑰 (CMK)。如需 CMKs 的詳細資訊,請前往 中的 AWS Key Management Service 概念。AWS Key Management Service Developer Guide

    Linux
    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
    aws ssm describe-parameters \ --parameter-filters "Key=Name,Values=parameter-name"
    Windows
    aws ssm describe-parameters ^ --parameter-filters "Key=Name,Values=parameter-name"
重要
  • 參數存放區 會保留參數的政策,直到您用新的政策覆寫該政策或將其移除。

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

    Linux
    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 的 AWS 工具 並執行以下命令,以指定您的登入資料。您必須在 Amazon EC2 中具備管理員權限,或已在 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 管理的客戶主金鑰 (CMK)。

    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-you-specified").Parameters
重要
  • 參數存放區 會保留參數的政策,直到您用新的政策覆寫該政策或將其移除。

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

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