更新 Session Manager 偏好設定 (命令列) - AWS Systems Manager

更新 Session Manager 偏好設定 (命令列)

下列程序說明如何使用您慣用的命令列工具,為所選 AWS 區域 中的 AWS 帳戶 變更 AWS Systems Manager Session Manager 偏好設定。使用 Session Manager 偏好設定,以指定在 Amazon Simple Storage Service (Amazon S3) 儲存貯體或 Amazon CloudWatch Logs 日誌群組中記錄工作階段資料的選項。您也可以使用 Session Manager 偏好設定來加密工作階段資料。

更新 Session Manager 偏好設定 (命令列)

  1. 在您的本機電腦建立 JSON 檔案的名稱,例如 SessionManagerRunShell.json,然後貼上以下內容。

    { "schemaVersion": "1.0", "description": "Document to hold regional settings for Session Manager", "sessionType": "Standard_Stream", "inputs": { "s3BucketName": "", "s3KeyPrefix": "", "s3EncryptionEnabled": true, "cloudWatchLogGroupName": "", "cloudWatchEncryptionEnabled": true, "cloudWatchStreamingEnabled": false, "kmsKeyId": "", "runAsEnabled": true, "runAsDefaultUser": "", "idleSessionTimeout": "", "shellProfile": { "windows": "date", "linux": "pwd;ls" } } }
  2. 指定您要傳送工作階段資料的位置。您可以指定 S3 儲存貯體名稱 (包含選用字首) 或 CloudWatch Logs 日誌群組名稱。如果您想要進一步加密本機用戶端和 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體的資料,請提供用於加密的 AWS KMS key。以下是範例。

    { "schemaVersion": "1.0", "description": "Document to hold regional settings for Session Manager", "sessionType": "Standard_Stream", "inputs": { "s3BucketName": "DOC-EXAMPLE-BUCKET", "s3KeyPrefix": "MyBucketPrefix", "s3EncryptionEnabled": true, "cloudWatchLogGroupName": "MyLogGroupName", "cloudWatchEncryptionEnabled": true, "cloudWatchStreamingEnabled": false, "kmsKeyId": "MyKMSKeyID", "runAsEnabled": true, "runAsDefaultUser": "MyDefaultRunAsUser", "idleSessionTimeout": "20", "shellProfile": { "windows": "MyCommands", "linux": "MyCommands" } } }
    注意

    如果您不想加密工作階段日誌資料,請將 s3EncryptionEnabledtrue 設為 false

    如果您不是將日誌傳送到 Amazon S3 儲存貯體或 CloudWatch Logs 日誌群組、不想加密作用中的工作階段資料,或不想為帳戶中的工作階段啟用執行身分支援,您可以刪除這幾行選項。請確定在 inputs 部分最後一行不是用逗號結尾。

    如果您新增可加密工作階段資料的 KMS 金鑰 ID,啟動工作階段的使用者和這些工作階段連接的執行個體必須具有該金鑰的使用許可。您可透過 AWS Identity and Access Management (IAM) 政策提供將 KMS 金輪與 Session Manager 搭配使用的許可。如需詳細資訊,請參閱以下主題:

  3. 儲存檔案。

  4. 在您建立 JSON 檔案的目錄裡執行下列命令。

    Linux & macOS
    aws ssm update-document \ --name "SSM-SessionManagerRunShell" \ --content "file://SessionManagerRunShell.json" \ --document-version "\$LATEST"
    Windows
    aws ssm update-document ^ --name "SSM-SessionManagerRunShell" ^ --content "file://SessionManagerRunShell.json" ^ --document-version "$LATEST"
    PowerShell
    Update-SSMDocument ` -Name "SSM-SessionManagerRunShell" ` -Content (Get-Content -Raw SessionManagerRunShell.json) ` -DocumentVersion '$LATEST'

    如果成功,此命令傳回的輸出會類似如下。

    {
        "DocumentDescription": {
            "Status": "Updating",
            "Hash": "ce4fd0a2ab9b0fae759004ba603174c3ec2231f21a81db8690a33eb66EXAMPLE",
            "Name": "SSM-SessionManagerRunShell",
            "Tags": [],
            "DocumentType": "Session",
            "PlatformTypes": [
                "Windows",
                "Linux"
            ],
            "DocumentVersion": "2",
            "HashType": "Sha256",
            "CreatedDate": 1537206341.565,
            "Owner": "111122223333",
            "SchemaVersion": "1.0",
            "DefaultVersion": "1",
            "DocumentFormat": "JSON",
            "LatestVersion": "2"
        }
    }