建立 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 偏好設定的資訊,請參閱更新 Session Manager 偏好設定 (命令列)

如需如何使用 AWS CloudFormation 建立工作階段偏好設定的範例,請參閱 AWS CloudFormation 使用者指南中的建立 Session Manager 偏好設定的 Systems Manager 文件

注意

您可以使用此程序為您的 Session Manager 偏好設定 (可覆寫帳戶層級設定) 建立自訂工作階段文件。建立自訂工作階段文件時,為名稱參數指定 SSM-SessionManagerRunShell 以外的值,並根據需要修改輸入。若要使用您的自訂工作階段文件,從 AWS Command Line Interface (AWS CLI) 啟動工作階段時,您必須為 --document-name 參數提供自訂工作階段文件的名稱。當您從主控台啟動工作階段時,您無法指定自訂工作階段文件。

建立 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": false, "runAsDefaultUser": "", "idleSessionTimeout": "", "shellProfile": { "windows": "date", "linux": "pwd;ls" } } }

    您也可以使用參數將值傳遞到工作階段偏好設定,而不是對這些值進行硬編碼,如以下範例所示。

    { "schemaVersion":"1.0", "description":"Session Document Parameter Example JSON Template", "sessionType":"Standard_Stream", "parameters":{ "s3BucketName":{ "type":"String", "default":"" }, "s3KeyPrefix":{ "type":"String", "default":"" }, "s3EncryptionEnabled":{ "type":"Boolean", "default":"false" }, "cloudWatchLogGroupName":{ "type":"String", "default":"" }, "cloudWatchEncryptionEnabled":{ "type":"Boolean", "default":"false" } }, "inputs":{ "s3BucketName":"{{s3BucketName}}", "s3KeyPrefix":"{{s3KeyPrefix}}", "s3EncryptionEnabled":"{{s3EncryptionEnabled}}", "cloudWatchLogGroupName":"{{cloudWatchLogGroupName}}", "cloudWatchEncryptionEnabled":"{{cloudWatchEncryptionEnabled}}", "kmsKeyId":"" } }
  2. 指定您要傳送工作階段資料的位置。您可以指定 S3 儲存貯體名稱 (包含選用字首) 或 CloudWatch Logs 日誌群組名稱。如果您想要進一步加密本機用戶端和 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體的資料,請提供用於加密的 KMS 金鑰。以下是範例。

    { "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,啟動工作階段的使用者和這些工作階段連接的執行個體必須具有該金鑰的使用許可。您可透過 IAM 政策提供將 KMS 金輪 與 Session Manager 搭配使用的許可。如需詳細資訊,請參閱以下主題:

  3. 儲存檔案。

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

    Linux & macOS
    aws ssm create-document \ --name SSM-SessionManagerRunShell \ --content "file://SessionManagerRunShell.json" \ --document-type "Session" \ --document-format JSON
    Windows
    aws ssm create-document ^ --name SSM-SessionManagerRunShell ^ --content "file://SessionManagerRunShell.json" ^ --document-type "Session" ^ --document-format JSON
    PowerShell
    New-SSMDocument ` -Name "SSM-SessionManagerRunShell" ` -Content (Get-Content -Raw SessionManagerRunShell.json) ` -DocumentType "Session" ` -DocumentFormat JSON

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

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