本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
创建 Session Manager 首选项(命令行)
以下过程介绍如何使用首选的命令行工具在选择的 Session Manager 区域中为您的账户创建 AWS 首选项。使用 Session Manager 首选项指定用于记录 Amazon Simple Storage Service (Amazon S3) 存储桶或 Amazon CloudWatch Logs 日志组中的会话数据的选项。您还可以使用 Session Manager 首选项来加密您的会话数据。
有关使用命令行工具更新现有 Session Manager 首选项的信息,请参阅更新 Session Manager 首选项(命令行).
您可以使用此过程为覆盖账户级别设置的Session Manager首选项创建自定义会话文档。在创建自定义会话文档时SSM-SessionManagerRunShell
,请为名称参数指定 以外的值并根据需要修改输入。要使用自定义会话文档,您必须在从 --document-name
(AWS Command Line Interface) 启动会话时为 AWS CLI 参数提供自定义会话文档的名称。从 控制台启动会话时,您无法指定自定义会话文档。
创建 Session Manager 首选项(命令行)
-
在本地计算机上创建一个名为 的 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":"" } }
-
指定要发送会话数据的位置。您可以指定 S3 存储桶名称(包含可选前缀)或 CloudWatch Logs 日志组名称。如果要进一步加密本地客户端和 Amazon Elastic Compute Cloud (Amazon EC2) 实例之间的数据,请提供用于加密的 AWS KMS 密钥。以下是示例。
{ "schemaVersion": "1.0", "description": "Document to hold regional settings for Session Manager", "sessionType": "Standard_Stream", "inputs": { "s3BucketName": "", "s3KeyPrefix": "
MyBucketPrefix
", "s3EncryptionEnabled": true, "cloudWatchLogGroupName": "MyLogGroupName
", "cloudWatchEncryptionEnabled": true, "cloudWatchStreamingEnabled": false, "kmsKeyId": "MyKMSKeyID
", "runAsEnabled": true, "runAsDefaultUser": "MyDefaultRunAsUser
", "idleSessionTimeout": "20", "shellProfile": { "windows": "MyCommands
", "linux": "MyCommands
" } } }注意 如果您不想加密会话日志数据,请将
true
更改为false
的s3EncryptionEnabled
。如果您不是将日志发送到 S3 存储桶或 CloudWatch Logs 日志组,不希望加密活动会话的数据,或不希望为账户中的会话启用“运行身份”支持,则可以删除这些选项的行。确保
inputs
部分的最后一行不以逗号结尾。如果您添加 AWS KMS 密钥 ID 来加密会话数据,启动会话的用户及其所连接的实例都必须具有使用密钥的权限。您Session Manager通过 IAM 策略提供将 CMK 与 结合使用的权限。有关信息,请参阅以下主题:
-
为您账户中的用户添加 CMK 权限:(快速入门)IAM 默认 Session Manager 策略
-
为您账户中的实例添加 CMK 权限:步骤 2:验证或创建具有 IAM 权限的 Session Manager 实例配置文件
-
-
保存文件。
-
在创建 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" } }