Â絬ÌϤʥ·¥¹¥Æ¥à¤òÁÈ¿¥¤Ç´ÉÍý¤¹¤ë¤¿¤á¤Ë¤Ï¡¢Ç§¾Ú¥·¥¹¥Æ¥à¤Î´ÉÍý¤äŬÀڤʸ¢¸ÂÀßÄ꤬ɬÍפǤ¹¤¬¡¢¼ÂºÝ¤Ë¼Â¸½¤·¤è¤¦¤È»×¤¦¤È¾è¤ê±Û¤¨¤ë¤Ù¤­Êɤ¬Â¿¤¤¤Î¤â»ö¼Â¡£HashiCorp¤¬¥ê¥ê¡¼¥¹¤·¤¿Ç§¾Ú¥·¥¹¥Æ¥à¡ÖBoundary¡×¤ò»È¤¦¤È¡¢¥·¥¹¥Æ¥à¤Îǧ¾Ú¤ò1²Õ½ê¤Ë¤Þ¤È¤á¤Æ¥æ¡¼¥¶¡¼¤ä¥°¥ë¡¼¥×¤´¤È¤ËºÙ¤«¤¯¸¢¸Â´ÉÍý¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

Boundary by HashiCorp

https://www.boundaryproject.io/

Announcing HashiCorp Boundary

https://www.hashicorp.com/blog/hashicorp-boundary

¥µ¡¼¥Ð¡¼¤ä¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¥¢¥¯¥»¥¹¤¹¤ë¾ì¹ç¡¢½¾Íè¤ÏSSH¥³¥Þ¥ó¥É¤Ê¤É¤ò¼Â¹Ô¤·¤ÆľÀÜ¥·¥¹¥Æ¥à¤Ë¥¢¥¯¥»¥¹¤·¤Æ¤¤¤Þ¤·¤¿¤¬¡¢¥¢¥¯¥»¥¹¸¢¸Â¤Ê¤É¤ò¤­¤áºÙ¤«¤¯ÀßÄê¤Ç¤­¤º¡¢°Õ¿Þ¤·¤Ê¤¤Áàºî¤¬¤½¤Î¤Þ¤Þ¼Â¹Ô¤µ¤ì¤Æ¾ã³²¤Ë¤Ä¤Ê¤¬¤ë´í¸±À­¤¬¤¢¤ê¤Þ¤·¤¿¡£¤³¤ÎÌäÂê¤ò²ò·è¤¹¤ë¤Î¤¬Boundary¤Ç¡¢¥·¥¹¥Æ¥àÁ´ÂΤÎǧ¾Ú¤Ë¤ª¤±¤ë¡Ö¥²¡¼¥È¥¦¥§¥¤¡×¤ÎÌò³ä¤ò²Ì¤¿¤¹¤³¤È¤Ç¡¢¥·¥¹¥Æ¥à¤ËÂФ¹¤ë¤µ¤Þ¤¶¤Þ¤Êǧ¾Ú¤òÅý¹ç¤·¤Æ´ÉÍý¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£



Boundary¤ÏWindows¡¢macOS¡¢Linux¤Î¤Û¤«¡¢FreeBSD¤äSolaris¤Ê¤É¤ÇÍøÍѲÄǽ¡£º£²ó¤ÏUbuntu 20.04¤ËBoundary¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤ß¤Þ¤¹¡£

¤Þ¤º¤Ï²¼µ­¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤Æ¡¢Boundary¤ò¥¤¥ó¥¹¥È¡¼¥ë¡£

curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add -
sudo apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main"
sudo apt-get update && sudo apt-get install boundary


º£²ó¤Ï»îÍѤΤ¿¤á¡¢²¼µ­¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤ÆBoundary¤ò³«È¯¥â¡¼¥É¤Çµ¯Æ°¤·¤Þ¤¹¡£

boundary dev


Boundary¤òµ¯Æ°¤¹¤ë¤È¡¢Ç§¾Ú¤ËɬÍפʥ桼¥¶¡¼Ì¾¤ä¥Ñ¥¹¥ï¡¼¥É¤Ê¤É¤¬É½¼¨¤µ¤ì¤Þ¤·¤¿¡£



Boundary¤òµ¯Æ°¤·¤Æ¤¤¤ë¥Û¥¹¥È¤Î¥Ö¥é¥¦¥¶¤Ç¡Öhttp://127.0.0.1:9200¡×¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤ÈBoundary¤Î¥í¥°¥¤¥ó²èÌ̤¬É½¼¨¤µ¤ì¤ë¤Î¤Ç¡¢µ¯Æ°»þ¤ËÀ¸À®¤µ¤ì¤¿¥æ¡¼¥¶¡¼ID¤È¥Ñ¥¹¥ï¡¼¥É¤òÆþÎÏ¡£¥Æ¥¹¥È¥â¡¼¥É¤Ç¤Ï¥æ¡¼¥¶¡¼Ì¾¤Ï¡Öadmin¡×¡¢¥Ñ¥¹¥ï¡¼¥É¤Ï¡Öpassword¡×¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£



Boundary¤Î¡ÖÁÈ¿¥(Organizations)¡×¤òÁªÂò¤¹¤ë²èÌ̤¬É½¼¨¤µ¤ì¤Þ¤·¤¿¡£¥Ç¥Õ¥©¥ë¥È¤ÎÁÈ¿¥¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢º£²ó¤Ï¿·¤·¤¯ÁÈ¿¥¤òºîÀ®¤¹¤ë¤¿¤á¡ÖNew¡×¤ò¥¯¥ê¥Ã¥¯¡£



ÁÈ¿¥Ì¾¤òÆþÎϤ·¤Æ¡ÖSave¡×¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤È¡Ä¡Ä



¿·¤·¤¯ÁÈ¿¥¤¬ºîÀ®¤µ¤ì¡¢¥×¥í¥¸¥§¥¯¥È¤ò´ÉÍý¤¹¤ë²èÌ̤˰ܤê¤Þ¤¹¡£¿·µ¬¤Ë¥×¥í¥¸¥§¥¯¥È¤òºîÀ®¤¹¤ë¤¿¤á¡ÖNew¡×¤ò¥¯¥ê¥Ã¥¯¡£



¤³¤Á¤é¤â¥×¥í¥¸¥§¥¯¥È̾¤òÆþÎϤ·¤Æ¡ÖSave¡×¤ò¥¯¥ê¥Ã¥¯¤·¡¢¥×¥í¥¸¥§¥¯¥È¤òºîÀ®¤·¤Þ¤¹¡£



¥×¥í¥¸¥§¥¯¥È¤Ë¤Ï¡Ö¥»¥Ã¥·¥ç¥ó(Sessions)¡×¡Ö¥¿¡¼¥²¥Ã¥È(Targets)¡×¡Ö¥Û¥¹¥È¥«¥¿¥í¥°(Host Catalogs)¡×¤È¤¤¤¦ÀßÄê¹àÌܤ¬¤¢¤ê¤Þ¤¹¡£¤Ò¤È¤Þ¤º¥×¥í¥¸¥§¥¯¥È¤Ç´ÉÍý¤¹¤ë¥Û¥¹¥È¤òÀßÄꤹ¤ë¤¿¤á¡¢¡ÖHost Catalogs¡×¤«¤é¡ÖNew¡×¤ò¥¯¥ê¥Ã¥¯¡£



¥Û¥¹¥È¥«¥¿¥í¥°Ì¾¤òÆþÎϤ·¤Æ¡ÖSave¡×¤ò¥¯¥ê¥Ã¥¯¡£¥Û¥¹¥È¥«¥¿¥í¥°¤È¤Ï¡¢Boundary¤Ç´ÉÍý¤¹¤ë¥Û¥¹¥È¤Î°ìÍ÷¤Î¤³¤È¤Ç¤¹¡£



¥Û¥¹¥È¥«¥¿¥í¥°¤Ë¤Ï¡¢¥Û¥¹¥È¤Î½¸¹ç¤Ç¤¢¤ë¥Û¥¹¥È¥»¥Ã¥È(Host Sets)¤¬ÍøÍѤǤ­¤Þ¤¹¡£¡ÖHost Sets¡×¤«¤é¡ÖNew¡×¤ò¥¯¥ê¥Ã¥¯¡£



¥Û¥¹¥È¥»¥Ã¥È̾¤òÆþÎϤ·¤Æ¡ÖSave¡×¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£



³¤¤¤Æ¡ÖHosts¡×¤«¤é¡ÖNew¡×¤ò¥¯¥ê¥Ã¥¯¤·¡¢¥Û¥¹¥È¤ÎÅÐÏ¿¤ò¹Ô¤¤¤Þ¤¹¡£



¥Û¥¹¥È̾¤ÈIP¥¢¥É¥ì¥¹¤òÆþÎϤ·¤Æ¡ÖSave¡×¡£



¡ÖTargets¡×¤«¤é¡ÖHost Sets¡×¡ÖAdd Host Sets¡×¤È¿Ê¤ß¡¢¥¿¡¼¥²¥Ã¥È¤Ë¥Û¥¹¥È¥»¥Ã¥È¤òÄɲä·¤Þ¤¹¡£



Àè¤Û¤ÉÀßÄꤷ¤¿¥Û¥¹¥È¤òÁªÂò¤·¤Æ¡ÖAdd Host Sets¡×¤ò¥¯¥ê¥Ã¥¯¡£¤³¤ì¤Ç¥Û¥¹¥È¥«¥¿¥í¥°¤ÎÀßÄê¤Ï´°Î»¡£



¥Û¥¹¥È¥«¥¿¥í¥°¤Ë¥Û¥¹¥È¤òÅÐÏ¿¤·¤¿¤é¡¢¥¿¡¼¥²¥Ã¥È¤ÎÅÐÏ¿¤ò¹Ô¤¤¤Þ¤¹¡£¥¿¡¼¥²¥Ã¥È¤È¤ÏÀܳ¤·¤¿¤¤¥µ¡¼¥Ó¥¹¤Î¤³¤È¤Ç¡¢¶ñÂÎŪ¤Ë¤ÏSSH¤äRedis¡¢Postgres¤Ê¤É¤òÅÐÏ¿¤·¤Æ¤¤¤­¤Þ¤¹¡£



¥¿¡¼¥²¥Ã¥È̾¤È¥Ý¡¼¥È¤òÆþÎϤ·¤Æ¡ÖSave¡×¤ò¥¯¥ê¥Ã¥¯¤¹¤ì¤Ð¡¢¥×¥í¥¸¥§¥¯¥È¤ÎÀܳÀè¤Ë´Ø¤¹¤ë´ðËÜŪ¤ÊÀßÄê¤Ï´°Î»¡£Boundary¤Ç¤ÏÀܳÀè¤Î´ÉÍý¤ò¡Ö¥Û¥¹¥È¡×¤È¡Ö¥µ¡¼¥Ó¥¹¡×¤Ëʬ¤±¤Æ´ÉÍý¤¹¤ë¤³¤È¤Ç¡¢´Êñ¤«¤Ä¤­¤áºÙ¤«¤¤¸¢¸Â´ÉÍý¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£



³¤¤¤Æ¥×¥í¥¸¥§¥¯¥ÈÆâ¤Î¥æ¡¼¥¶¡¼¤ä¥°¥ë¡¼¥×¤Ë¸¢¸Â¤òÀßÄꤷ¤Æ¤¤¤­¤Þ¤¹¡£¤Þ¤º¤Ï¥æ¡¼¥¶¡¼¤òÄɲ乤뤿¤á¡ÖUsers¡×¤«¤é¡ÖNew¡×¤ò¥¯¥ê¥Ã¥¯¡£



¥æ¡¼¥¶¡¼Ì¾¤òÆþÎϤ·¤Æ¡ÖSave¡×¡£



¤³¤ó¤Ê´¶¤¸¤Ç¥æ¡¼¥¶¡¼¤òÅÐÏ¿¤·¤Æ¤ª¤­¤Þ¤¹¡£



¥°¥ë¡¼¥×¤â¡ÖGroups¡×¤«¤éƱ¤¸¤è¤¦¤ËÄɲòÄǽ¡£



¤Ê¤ª¡¢¥°¥ë¡¼¥×¤Ï̾¾Î¤ÎÀßÄê¤Ë²Ã¤¨¡¢¥°¥ë¡¼¥×¤Ë»²²Ã¤µ¤»¤ë¥æ¡¼¥¶¡¼¤âÀßÄꤷ¤Æ¤ª¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹¡£



¡ÖRoles¡×¤Ç¤Ï¥æ¡¼¥¶¡¼¤ä¥°¥ë¡¼¥×¤´¤È¤Ë¡¢¥¢¥¯¥»¥¹¤Ç¤­¤ë¥¿¡¼¥²¥Ã¥È¤ä¥Û¥¹¥È¤òÀßÄꤷ¤Þ¤¹¡£¡ÖRoles¡×¥¿¥Ö¤«¤é¡ÖNew¡×¤ò¥¯¥ê¥Ã¥¯¤·¡¢¥í¡¼¥ë¤òÄɲä·¤Þ¤¹¡£



¥í¡¼¥ë̾¤òÆþÎϤ·¤Æ¡ÖSave¡×¤ò¥¯¥ê¥Ã¥¯¡£



¡ÖPrincipals¡×¤ò¥¯¥ê¥Ã¥¯¤·¡¢¡ÖAdd Principals¡×¤ò¥¯¥ê¥Ã¥¯¡£¸¢¸Â¤òŬÍѤ¹¤ë¥æ¡¼¥¶¡¼¤ä¥°¥ë¡¼¥×¤òÁªÂò¤·¤Æ¤¤¤­¤Þ¤¹¡£



¥æ¡¼¥¶¡¼¤ä¥°¥ë¡¼¥×¤òÁªÂò¤·¤Æ¡ÖAdd Principals¡×¤ò¥¯¥ê¥Ã¥¯¡£¤³¤ì¤ÇÁªÂò¤·¤¿¥æ¡¼¥¶¡¼¤ä¥°¥ë¡¼¥×¤Ë¥í¡¼¥ë¤¬Å¬ÍѤµ¤ì¤Þ¤·¤¿¡£



¡ÖGrants¡×¤Ç¤Ï¤³¤Î¥í¡¼¥ë¤Ç¡Ö²¿¤Ë¡×¡Ö¤É¤ó¤ÊÁàºî¤ò¡×µö²Ä¤¹¤ë¤«¤òÀßÄꤷ¤Þ¤¹¡£µ­½Ò¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¡Öid=µö²Ä¤¹¤ë¥¿¡¼¥²¥Ã¥È¤ä¥Û¥¹¥È¤ÎID;type=¥¿¥¤¥×;actions=µö²Ä¤¹¤ëÆ°ºî¡×¤È¤¤¤¦´¶¤¸¤Ç¡¢µ­½Ò¤Ç¤­¤¿¤é¡ÖAdd¡×¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¡ÖSave¡×¤ò¥¯¥ê¥Ã¥¯¡£



¡ÖAuth Methods¡×¤Î¹àÌܤǤϡ¢³Æ¥æ¡¼¥¶¡¼¤¬Boundary¤ò·Ðͳ¤·¤Æ¥·¥¹¥Æ¥à¤Ë¥¢¥¯¥»¥¹¤¹¤ëºÝ¤Î¡ÖBoundary¤È¤Îǧ¾ÚÊýË¡¡×¤òÀßÄꤷ¤Þ¤¹¡£



¤³¤Á¤é¤âǧ¾Ú̾¤òÆþÎϤ·¤Æ¡ÖSave¡×¤ò¥¯¥ê¥Ã¥¯¡£



¤³¤Îǧ¾Ú¤òÍøÍѤ¹¤ë¥¢¥«¥¦¥ó¥È¤òÀßÄꤹ¤ë¤¿¤á¡ÖAccounts¡×¤«¤é¡ÖCreate Account¡×¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£



¥¢¥«¥¦¥ó¥È̾¡¢¥í¥°¥¤¥ó¥Í¡¼¥à¡¢¥Ñ¥¹¥ï¡¼¥É¤òÆþÎϤ·¤Æ¡ÖSave¡×¡£



¤³¤ó¤Ê´¶¤¸¤Ç¡¢³Æ¥æ¡¼¥¶¡¼¤ËÂФ·¤Æǧ¾ÚÊýË¡¤òÍÑ°Õ¡£



¤¢¤È¤Ï¥æ¡¼¥¶¡¼ÀßÄê¤Î¡ÖAccounts¡×¤«¤é¡ÖAdd Accounts¡×¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¡Ä¡Ä



ÍÑ°Õ¤·¤¿¥¢¥«¥¦¥ó¥È¤ò¥æ¡¼¥¶¡¼¤Ë³ä¤êÅö¤Æ¡ÖAdd Accounts¡×¤ò¥¯¥ê¥Ã¥¯¤¹¤ì¤ÐOK¡£¤³¤ì¤ÇBoundary¤ÎÀßÄê¤Ï´°Î»¤·¤Þ¤·¤¿¡£



¤³¤ì¤ÇÀܳ¤Ç¤­¤ë¡Ä¡Ä¤È»×¤¤¤­¤ä¡¢Àµ¾ï¤ËÀܳ¤¹¤ë¤³¤È¤¬¤Ç¤­¤º¡£¥Ç¥Õ¥©¥ë¥È¤ÇÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë¥¢¥«¥¦¥ó¥È¤Ç¤âÀܳ¤ò¹Ô¤¦¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿¡£Àµ¤·¤¯Æ°ºî¤·¤¿¾ì¹ç¡¢°Ê²¼¤Î¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤ÆBoundary¤Îǧ¾Ú¤òÄ̲ᤷ¡Ä¡Ä

boundary authenticate password -auth-method-id=ampw_1234567890 -login-name=admin -password=password


Boundary¥³¥Þ¥ó¥É¤ò·Ðͳ¤·¤Æ¥¿¡¼¥²¥Ã¥È¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ç¤¹¡£

boundary connect ssh -target-id ttcp_1234567890 -username james


¤Þ¤¿¡¢¥¿¡¼¥²¥Ã¥È¤Ø¥¢¥¯¥»¥¹¤¬¹Ô¤ï¤ì¤¿¾ì¹ç¡¢¥×¥í¥¸¥§¥¯¥È¤Î¡ÖSessions¡×¤Ç¤É¤Î¥æ¡¼¥¶¡¼¤¬¤É¤Î¥¿¡¼¥²¥Ã¥È¤ËÀܳ¤·¤Æ¤¤¤ë¤«¤ò°ìÍ÷¤Ç³Îǧ¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£