GCPã§NATã¤ã³ã¹ã¿ã³ã¹ãæ§ç¯ãã ã§æ¸ããããã«ãå¤é¨ãããã¯ã¼ã¯ã¸ã®éä¿¡ãNATã¤ã³ã¹ã¿ã³ã¹çµç±ã«ããå ´åãGCEã¤ã³ã¹ã¿ã³ã¹ã«ã°ãã¼ãã«IPã¢ãã¬ã¹ã¯ä»ä¸ã§ããªããããè¸ã¿å°ãµã¼ãçµç±ã§ãã°ã¤ã³ãããã¨ã«ãªãã¾ãã
æ¬è¨äºã¯è¸ã¿å°ãµã¼ãã®æ§ç¯ã¡ã¢ã¨è¸ã¿å°ãµã¼ãçµç±ã§GCEã¤ã³ã¹ã¿ã³ã¹ã«ãã°ã¤ã³ããæ¹æ³ãç´¹ä»ãã¾ãã
- è¸ã¿å°ãµã¼ãã®è¦ä»¶
- Firewallã«ã¼ã«ã®ä½æ
- ãµã¼ã使
- è¸ã¿å°ãµã¼ãã¸ã®ãã°ã¤ã³
- è¸ã¿å°çµç±ã§Linuxãµã¼ãã«ãã°ã¤ã³ããå ´å
- è¸ã¿å°çµç±ã§Windowsãµã¼ãã«ãã°ãªã³ããå ´å
- æå¾ã«
è¸ã¿å°ãµã¼ãã®è¦ä»¶
- ãªãã£ã¹ããã®ã¿ãã°ã¤ã³ããã(IPã¢ãã¬ã¹å¶éãã)
- ããã©ã«ãã®ãã¼ãçªå·(22)ãã夿´ãããä»å㯠48833 ã«ãã
Firewallã«ã¼ã«ã®ä½æ
ã«ã¹ã¿ã ãã¼ãã§SSHãã°ã¤ã³ã§ããããã«Firewallã«ã¼ã«ã使ãã¾ãã
åæè¨å®ã§22çªãã¼ãã§ãã°ã¤ã³ããå¿
è¦ãããããã22çªãã¼ããåããã¦è¨±å¯ããããã«ãã¾ãã
以ä¸ã®IPã¢ãã¬ã¹ã¯ä¾ç¤ºå°ç¨ã§ãã
$ gcloud compute firewall-rules create "allow-ssh-bastion" \ --allow tcp:48833,tcp:22 --target-tags bastion \ --description "ãªãã£ã¹ããSSHæ¥ç¶ã許å¯(è¸ã¿å°ãµã¼ãå°ç¨)" \ --priority=1000 \ --source-ranges "203.0.113.20/32","203.0.113.21/32" \ --network=sample
ãµã¼ã使
ååã¯ä»å㯠bastion
ã¨ãã¾ããã
OSã¯ä½ã§ãããã®ã§ãããä»åã¯CentOS 7ã«ãã¾ããããã·ã³ã¿ã¤ãã¯f1-microã¨ä¸çªå°ãããã®ã«ãã¾ããã
gcloud compute ssh
ã³ãã³ãã§ãã°ã¤ã³ããã«ãããã Compute Engineã®APIã¢ã¯ã»ã¹ããèªã¿åã / æ¸ãè¾¼ã¿ãã許å¯ãã¾ãã
ã¿ã°ä»ã
å
ç¨ä½æããFirewallã«ã¼ã«ãé©ç¨ããããã bastion
ã¿ã°ãã¤ãã¾ãã
$ gcloud compute instances add-tags bastion --tags bastion
è¨å®
ããã±ã¼ã¸ã¢ãããã¼ããã¾ãã
% yum makecache % yum update kubectl \ google-cloud-sdk \ google-cloud-sdk-app-engine-grpc \ google-cloud-sdk-pubsub-emulator \ google-cloud-sdk-app-engine-go \ google-cloud-sdk-datastore-emulator \ google-cloud-sdk-app-engine-python \ google-cloud-sdk-cbt \ google-cloud-sdk-bigtable-emulator \ google-cloud-sdk-datalab \ google-cloud-sdk-app-engine-java
SSHãã¼ãçªå·å¤æ´
% diff -u /etc/ssh/sshd_config.orig /etc/ssh/sshd_config --- /etc/ssh/sshd_config.orig 2018-07-16 22:27:12.725667712 +0000 +++ /etc/ssh/sshd_config 2018-08-02 09:55:54.291169281 +0000 @@ -14,7 +14,7 @@ # SELinux about this change. # semanage port -a -t ssh_port_t -p tcp #PORTNUMBER # -#Port 22 +Port 48833 #AddressFamily any #ListenAddress 0.0.0.0 #ListenAddress ::
% service sshd restart
è¸ã¿å°ãµã¼ãã¸ã®ãã°ã¤ã³
gcloudã³ãã³ãã§ãã°ã¤ã³ããå ´åã以ä¸ã®ããã«ãã°ã¤ã³ãã¾ãã
ååãã°ã¤ã³ã®éã«ç§å¯éµã使ããã®ã§ããããã¹ãã¬ã¼ãºãè¨å®ããæ¹ãã»ãã¥ã¢ã§ãã
Linux / Mac:
--
以éã«SSHã³ãã³ãã¨åããªãã·ã§ã³ãæå®ã§ãã¾ãã
$ gcloud compute ssh bastion -- -p 48833 ARNING: The public SSH key file for gcloud does not exist. WARNING: The private SSH key file for gcloud does not exist. WARNING: You do not have an SSH key for gcloud. WARNING: SSH keygen will be executed to generate a key. Generating public/private rsa key pair. Enter passphrase (empty for no passphrase): <ãã¹ãã¬ã¼ãºãå ¥å> Enter same passphrase again: <ãã¹ãã¬ã¼ãºãå ¥å> Your identification has been saved in /Users/sample_user/.ssh/google_compute_engine. Your public key has been saved in /Users/sample_user/.ssh/google_compute_engine.pub. The key fingerprint is: SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxx sample_user@localhost The key's randomart image is: +---[RSA 2048]----+ | | | . . . | | . o + o | | ooo+ + | | +=E+o.. | | . +*=*=* | | ooo++O+o . | | .oo=o..+.o | | o..+. .+..| +----[SHA256]-----+ Updating project ssh metadata...â ¹Updated [https://www.googleapis.com/compute/v1/projects/sample]. Updating project ssh metadata...done.
Windows:
google-cloud-sdkå
é¨ã®putty.exeã使ããã¾ãã-p
ã®ä»£ããã«-P
ãªãã·ã§ã³ãæå®ãã¾ãã
$ gcloud compute ssh bastion -- -P 48833
è¸ã¿å°çµç±ã§Linuxãµã¼ãã«ãã°ã¤ã³ããå ´å
è¸ã¿å°ãµã¼ãã«ãã°ã¤ã³å¾ä¾ãã° sample-linux001 ã¨ãããµã¼ãã«ãã°ã¤ã³ãããå ´åã¯ä»¥ä¸ã®ã³ãã³ããå®è¡ãã¾ãã
$ gcloud compute ssh sample-linux001 --internal-ip --zone asia-northeast1-a
è¸ã¿å°ãµã¼ãã«ç§å¯éµã使ããããæ±ããããã®ã§ããã§ã使ãã¾ãã
~/.ssh/config
ãProxyCommandã使ã£ã¦ä¸çºã§å
¥ããæ¹æ³ã模索ä¸ã§ãããã
è¸ã¿å°ãµã¼ãã¨åãã¾ã¼ã³(asia-northeast1-a
)ã®VMã¤ã³ã¹ã¿ã³ã¹ã®å ´å㯠--zone
ãªãã·ã§ã³ã¯çç¥ã§ãã¾ãã
VMã¤ã³ã¹ã¿ã³ã¹ã®ä¸è¦§ã¯ gcloud compute instances list
ã§ç¢ºèªã§ãã¾ãã
è¸ã¿å°çµç±ã§Windowsãµã¼ãã«ãã°ãªã³ããå ´å
SSHãã¼ããã©ã¯ã¼ãã£ã³ã°ã§å
¥ãã¾ããä¾ã¨ãã¦sample-windows001 ã¨ããWindowsãµã¼ãã«ãã°ã¤ã³ãããå ´åã¯ä»¥ä¸ã®ããã«ãã¾ãããããå®è¡ããå¾ã localhost:13390
ã§Windowsãµã¼ãã«RDPæ¥ç¶ã§ããããã«ãªãã¾ãã13390ã¯ãªãã¹ã³ãããã¼ã«ã«ãã¼ããªã®ã§é©å½ãªãã¼ãçªå·ã§ããä»ã®ãã¼ãçªå·ã§ãããã®ã§ãããã¦ã§ã«ãã¦ã³ãã¼ã以å¤ã«ãã¦ãã ããã
Linux / Mac
$ gcloud compute ssh bastion -- -p 48833 \ -L 13390:sample-windows001:3389
Windows
> gcloud compute ssh bastion -- -P 48833 \ -L 13390:sample-windows001:3389
æå¾ã«
GCPã§è¸ã¿å°ãµã¼ãã®æ§ç¯ã¨è¸ã¿å°ãµã¼ãçµç±ã§VPCãããã¯ã¼ã¯å
é¨ã®GCEã¤ã³ã¹ã¿ã³ã¹ã«ãã°ã¤ã³ããæ¹æ³ãç´¹ä»ãã¾ããã
gcloud compute ssh
ã³ãã³ãã使ã£ãæ¹æ³ã ã¨äºåå®è¡ããå¿
è¦ãããã®ã¨è¸ã¿å°ãµã¼ãã«ç§å¯éµãæ®ã£ã¦ãã¾ãã®ã§ãã¾ã好æã§ã¯ããã¾ããã ~/.ssh/config
ãªã©ã§ä¸çºã§å
¥ããæ¹æ³ãããã°æãã¦ãã ããã