📝
Session ManagerでターミナルからCloud9につなぐ
状況
EC2にVM立てた後に開発系のことがやりたい時はEC2インスタンス上に主要開発言語、Docker、AWS CLIなど全部入りで起動するCloud9が便利。WebコンソールとCloud9 IDEが悪くないのは分かった。でも俺はローカルのターミナルからもサクッとつなぎたい。ただし、インバウンドのSSHを空けるなんてもってのほかだ。
すぐできる
- Session ManagerのCLIをインストールする
- Cloud9起動する時に
Create a new no-ingress EC2 instance for environment(access via Systems Manager)
を選んでインスタンスを作る - ターミナルから以下を叩くだけで繋がる
aws ssm start-session --target <instance_id>
ちなみに
ターミナルから以下を叩くとInstanceId
を含めたインスタンスの情報をみることができる
aws ssm describe-instance-information
InstanceInformationList:
- AgentVersion: 3.0.1124.0
ComputerName: <ip-address>.ap-northeast-1.compute.internal
IPAddress: <ip-address>
InstanceId: <instance_id>
IsLatestVersion: false
LastPingDateTime: '2021-12-27T13:16:38.697000+09:00'
PingStatus: Online
PlatformName: Amazon Linux
PlatformType: Linux
PlatformVersion: '2'
ResourceType: EC2Instance
権限が足りない
このようなエラーがでたらIAMのPermissionを確認
aws ssm start-session --target <instance_id>
An error occurred (403) when calling the StartSession operation: Server authentication failed: <UnauthorizedRequest xmlns=""><message>Forbidden.</message></UnauthorizedRequest>
今使っているidentity
は以下で確認できる - whoami
aws sts get-caller-identity
Discussion