创建会话管理器首选项(命令行) - Amazon Systems Manager
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

创建会话管理器首选项(命令行)

以下过程介绍了如何使用首选的命令行工具创建Amazon Systems Manager会话管理器首选项 Amazon Web Services 账户 在选定的 Amazon Web Services 区域 。使用会话管理器首选项来为 Amazon Simple Storage Service (Amazon S3) 存储桶或 Amazon CloudWatch Logs 日志组中的日志记录会话数据指定选项。您还可以使用会话管理器首选项来加密您的会话数据。

有关使用命令行工具更新现有会话管理器首选项的信息,请参阅更新会话管理器首选项(命令行)

注意

您可以使用此过程为会话管理器首选项创建自定义会话文档,这些首选项覆盖帐户级别设置。在创建自定义 Session 文档时,请为SSM-SessionManagerRunShell作为 name 参数,并根据需要修改输入。要使用自定义会话文档,您必须为--document-name参数从Amazon Command Line Interface(Amazon CLI)。从控制台启动会话时,无法指定自定义会话文档。

创建会话管理器首选项(命令行)

  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 group group group group group group group group group group group group group group group name。如果您希望在本地客户端和 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" } } }
    注意

    如果您不想加密会话日志数据,请将truefalse对于 来说为s3EncryptionEnabled

    如果您不是将日志发送到 Amazon S3 存储桶或 CloudWatch Logs 日志组,不希望加密活动会话的数据,或不希望为账户中的会话启用 “运行身份” 支持,则可以删除这些选项的行。确保将最后一行放在inputs部分不以逗号结尾。

    如果您添加 KMS 密钥 ID 来加密会话数据,启动会话的用户及其所连接的实例都必须具有使用密钥的权限。您通过 IAM 策略提供将 KMS 密钥与会话管理器结合使用的权限。有关信息,请参阅以下主题:

  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"
        }
    }