我在要复制文件的专用子网中有一个EC2实例。
取而代之的是S3斗我想通过会话管理器使用安全的文件复制作为记录在这里和公布在这里。
运行中的EC2实例附带有包含策略的实例配置文件AmazonEC2RoleforSSM
。在我的本地计算机(macOS 10.14.5)上,AWS CLI(aws-cli / 1.16.195)和会话管理器插件(1.1.26.0)已安装并.ssh/config
进行了相应配置。
我可以在Web AWS控制台上使用会话管理器登录实例。
我可以使用CLI使用CLI登录实例aws ssm start-session --target i-XXX
。
我无法使用SSH登录到实例。我尝试了2种不同的OpenSSH客户端版本:
OpenSSH_7.9p1:
当我运行时,ssh ec2-user@i-XXX
它无限挂起。但是我可以connected
在会话管理器中看到一个会话。当我对SIGTERM进行处理时,我得到以下输出,并且会话终止:
Command '['session-manager-plugin', '{"SessionId": "XXX", "TokenValue": "XXX", "StreamUrl": "wss://ssmmessages.eu-central-1.amazonaws.com/v1/data-channel/XXX?role=publish_subscribe", "ResponseMetadata": {"RetryAttempts": 0, "HTTPStatusCode": 200, "RequestId": "XXX", "HTTPHeaders": {"x-amzn-requestid": "XXX", "date": "Wed, 07 Aug 2019 08:47:23 GMT", "content-length": "579", "content-type": "application/x-amz-json-1.1"}}}', 'eu-central-1', 'StartSession', u'cc', '{"DocumentName": "AWS-StartSSHSession", "Target": "i-XXX", "Parameters": {"portNumber": ["22"]}}', u'https://ssm.eu-central-1.amazonaws.com']' returned non-zero exit status -13
Run Code Online (Sandbox Code Playgroud)
OpenSSH_8.0p1:
运行时ssh …
我想在我的 CodeDeploy 管道中使用 AWS 系统管理器存储参数,删除我对 Lightsail 的最后一次提交。
? 1. 我创建了一个 SSM 参数:MySecureString
。
参数被设定在SecureString
与KMS加密集合上Actual account
与alias/aws/ssm
作为ID。
我SecureString
的设置为:postgres://user:password@endpoint.rds.amazonaws.com:5432/myDatabase
? 2. 我创建了一个供 CodeDeploy 实例使用的 IAM 策略
前往 IAM 并创建了一个附加到的 JSON 策略MySpecificCodeDeployUser
:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"kms:Decrypt",
"ssm:GetParameter"
],
"Resource": [
"arn:aws:kms:*:<accountID>:key/alias/aws/ssm",
"arn:aws:ssm:us-east-1:<accountID>:parameter/MySecureString"
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
? 3.测试MySpecificFCodeDeployUser
访问SSM MySecureString
:
键入aws configure
以登录MySpecificFCodeDeployUser
并尝试在我的本地计算机上运行此命令:
aws --region=us-east-1 ssm get-parameter --name …
Run Code Online (Sandbox Code Playgroud) amazon-web-services aws-code-deploy amazon-kms amazon-lightsail aws-systems-manager
在创建 cloudformation 堆栈时,我将很少输入。Cloudformation 堆栈将创建一个 SSM 文档(AWS 系统管理器),我想在执行之前将密码作为输入参数提供给 SSM 文档。
"parameters": {
"sourceAMIid": {
"type": "String",
"description": "Source/Base AMI to be used for generating your Automated AMI",
"default": { "Fn::FindInMap" : [ "RegionMap", { "Ref" : "AWS::Region" }, "HVM64"]}
},
"Username": {
"type": "String",
"description": "account username/email",
"default": "none"
},
"password": {
"type": "String",
"description": "account password",
"default": "none"
},
"productName": {
"type": "String",
"description": "The syntax of this parameter is ProductName-ProductVersion.",
"default": {
"Ref": "productName"
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我在此字段中输入密码时,它会按原样显示确切的单词。有什么方法可以定义密码参数以显示如下
amazon-web-services aws-cloudformation ssm aws-systems-manager