{"id":6556,"date":"2022-10-14T22:08:28","date_gmt":"2022-10-14T13:08:28","guid":{"rendered":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=6556"},"modified":"2022-10-19T18:17:31","modified_gmt":"2022-10-19T09:17:31","slug":"hashicorp-vault-%ec%8b%9c%ec%9e%91%ed%95%98%ea%b8%b0","status":"publish","type":"post","link":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=6556","title":{"rendered":"Hashicorp Vault \uc2dc\uc791\ud558\uae30"},"content":{"rendered":"<h1>Hashicorp Vault \uc2dc\uc791\ud558\uae30<\/h1>\n<h2>Vault \ub780?<\/h2>\n<p>Secret(\ube44\ubc00\ubc88\ud638, \uc778\uc99d\ud0a4 \ub4f1) \uc744 \uad00\ub9ac\ud558\ub294 \ud234\uc774\ub2e4.<\/p>\n<h2>\uc6a9\uc5b4\uc815\ub9ac<\/h2>\n<h3>Storage Backend<\/h3>\n<p>Secret \uc774 \uc2e4\uc81c\ub85c \uc800\uc7a5\ub420 \uc800\uc7a5\uc18c\ub97c \ub9d0\ud55c\ub2e4.<br \/>\n\uc800\uc7a5\uc18c\ub294 File, Consul, \uac01\uc885DB(MySQL \ub4f1), AWS S3 \ub4f1\uc774 \ub420 \uc218 \uc788\ub2e4.<\/p>\n<h3>Secret Backend<\/h3>\n<p>Secret \uc774 \uc800\uc7a5\ub420 \uc800\uc7a5\ubc29\uc2dd\uc744 \ub9d0\ud55c\ub2e4.<br \/>\n\uc5ec\ub7ec\uac00\uc9c0 \ubc29\uc2dd\uc774 \uc788\ub294 \ub4ef \ud558\uc9c0\ub9cc key-value \ubc29\uc2dd\uc774 \ub2e8\uc21c\ud558\uace0 \ud3b8\ud558\ub2e4.<\/p>\n<h3>Auth Backend<\/h3>\n<p>Secret \uc744 \ubc1b\uc544\uc624\uae30 \uc704\ud55c \uc778\uc99d\ubc29\uc2dd\uc744 \ub9d0\ud55c\ub2e4.<\/p>\n<p>Token \ud55c\uac1c\ub97c \uc774\uc6a9\ud574 \uc778\uc99d\ud558\ub294 \ubc29\uc2dd\ub3c4 \uc788\uace0,<\/p>\n<p>AppRole \uac19\uc740 \uacbd\uc6b0 roleId\/secretId \ub97c \uc774\uc6a9\ud574<br \/>\n\uc784\uc2dc Token \uc744 \uc694\uccad\ud558\uace0 \uc784\uc2dc Token \uc73c\ub85c Secret \uc744 \ubc1b\uc544\uc624\uae30\ub3c4 \ud55c\ub2e4.<\/p>\n<p>LDAP \uc744 \uc774\uc6a9\ud574 Token \uc744 \ubc1b\uc544\uc624\ub294 \ubc29\uc2dd\ub3c4 \uc788\ub2e4\uace0 \ud558\ub294\ub370 \uc0dd\ub7b5\ud55c\ub2e4.<\/p>\n<h2>Vault \uac1c\ubc1c\uc11c\ubc84 \uad6c\uc131\ud558\uae30<\/h2>\n<h3>\ubc14\uc774\ub108\ub9ac \ub2e4\uc6b4\ubc1b\uae30<\/h3>\n<p><a href=\"https:\/\/www.vaultproject.io\/downloads\">\uc5ec\uae30<\/a> \uc5d0\uc11c \ub2e4\uc6b4\ubc1b\ub294\ub2e4.<\/p>\n<p>\uc555\ucd95\uc744 \ud480\uba74 vault.exe \uac00 \ub098\uc628\ub2e4.(\uc708\ub3c4\uc6b0 \uae30\uc900)<\/p>\n<h3>\uc2e4\ud589\ud558\uae30<\/h3>\n<p>\ub3c4\uc2a4\ucc3d\uc744 \uc5f4\uace0 \uc544\ub798 \uba85\ub839\uc744 \uc2e4\ud589\ud558\uba74 \uc11c\ube44\uc2a4\uac00 \uc2e4\ud589\ub41c\ub2e4.<\/p>\n<pre><code class=\"language-bash\">vault server -dev<\/code><\/pre>\n<p>Root Token \uc740 \ub9d0 \uadf8\ub300\ub85c root \uad8c\ud55c\uc744 \uc81c\uacf5\ud558\ub294 \ud1a0\ud070\uc774\ub2e4.<br \/>\n\uc6b4\uc601\uc11c\ubc84\uc5d0\uc11c\ub294 Token Policy \uc640 AppRole, Secret \uc0dd\uc131\uc744 \uc81c\uc678\ud558\uace0 \uc0ac\uc6a9\ud558\uc9c0 \ub9d0\uc544\uc57c \ud55c\ub2e4.<\/p>\n<p>Unseal Key \ub294 \uc6b4\uc601\uc6a9 \ud65c\uc131\ud654 \ud1a0\ud070\uc774\ub2e4.<br \/>\n\uac1c\ubc1c\ubaa8\ub4dc\uc5d0\uc11c\ub294 1\uac1c\uc758 Unseal Key \ub9cc \uc0dd\uc131\ud558\uc9c0\ub9cc,<br \/>\n\uc6b4\uc601\ubaa8\ub4dc\uc5d0\uc11c\ub294 \ub514\ud3f4\ud2b8\ub85c 5\uac1c\uc758 \ud1a0\ud070\uc774 \uc0dd\uc131\ub418\uace0,<br \/>\n\uadf8\uc911 3\uac1c\uc758 \ud1a0\ud070\uc774 \ubaa8\ub450 \uc785\ub825\ub418\uc5b4\uc57c Valut \uac00 \ud65c\uc131\ud654 \ub41c\ub2e4.<\/p>\n<p>Unseal Key, Root Token \ub294 \uc911\uc694\ud55c \uc815\ubcf4\uc774\ub2c8 \ubcc4\ub3c4\ub85c \uc800\uc7a5\ud574 \ub450\uc5b4\uc57c \ud55c\ub2e4.<\/p>\n<pre><code class=\"language-bash\">WARNING! dev mode is enabled! In this mode, Vault runs entirely in-memory\nand starts unsealed with a single unseal key. The root token is already\nauthenticated to the CLI, so you can immediately begin using Vault.\n\nYou may need to set the following environment variables:\n\nPowerShell:\n    $env:VAULT_ADDR=&quot;http:\/\/127.0.0.1:8200&quot;\ncmd.exe:\n    set VAULT_ADDR=http:\/\/127.0.0.1:8200\n\nThe unseal key and root token are displayed below in case you want to\nseal\/unseal the Vault or re-authenticate.\n\nUnseal Key: KyTkxx1p3Uf4GXXXXXXXXXXXXXXXXXXXXXXXXX\nRoot Token: hvs.xOqwzjjXXXXXXXXXXXXX\n\nDevelopment mode should NOT be used in production installations!<\/code><\/pre>\n<h3>Web UI<\/h3>\n<p>\ube0c\ub77c\uc6b0\uc800\ub85c \uc811\uc18d\ud558\ub294 \uac83\uc744 \uc120\ud638\ud558\uba74 <a href=\"http:\/\/localhost:8200\/\">http:\/\/localhost:8200\/<\/a> \ub85c \uc811\uc18d\ud560 \uc218 \uc788\ub2e4.<\/p>\n<p>Root Token \uc744 \uc774\uc6a9\ud574 \ub85c\uadf8\uc778\ud55c\ub2e4.<\/p>\n<h3>\ud658\uacbd\ubcc0\uc218 \uc124\uc815<\/h3>\n<pre><code class=\"language-bash\"># windows\nset VAULT_ADDR=http:\/\/127.0.0.1:8200\nset VAULT_TOKEN=hvs.xOqwzjjXXXXXXXXXXXXX\n\n# linux\nexport VAULT_ADDR=&#039;http:\/\/127.0.0.1:8200&#039;\nexport VAULT_TOKEN=&quot;hvs.xOqwzjjXXXXXXXXXXXXX&quot;<\/code><\/pre>\n<h2>\uae30\ubcf8 \uc0ac\uc6a9\ubc95<\/h2>\n<h3>Secret Engine \uc0dd\uc131 \ubc0f \uc870\ud68c<\/h3>\n<p>Secret Engine \uc740 \uc800\uc7a5\uc18c\ub97c \uc758\ubbf8\ud55c\ub2e4.<br \/>\n\uc800\uc7a5\uc18c\ub294 Vault \uc790\uccb4\ub97c \uc800\uc7a5\uc18c(file \ub85c \uc800\uc7a5\ub428)\ub85c \ud560\uc218\ub3c4 \uc788\uace0,<br \/>\nDB(MySQL, SqlServer \ub4f1) \ub610\ub294 Consul, AWS S3 \ub4f1\uc744 \uc800\uc7a5\uc18c\ub85c \ud560\uc218\ub3c4 \uc788\ub2e4.<\/p>\n<p>\uac1c\ubc1c\ubaa8\ub4dc\uc77c \uacbd\uc6b0 \uba54\ubaa8\ub9ac\uc5d0 \uc800\uc7a5\ub41c\ub2e4.<br \/>\n(\uc11c\ubc84 \uc7ac\uc2dc\uc791\uc2dc \ub370\uc774\ud0c0\uac00 \ubaa8\ub450 \uc0ac\ub77c\uc9c4\ub2e4.)<\/p>\n<p>\uc544\ub798 \uba85\ub839\uc73c\ub85c Secret Engine \ubaa9\ub85d\uc744 \uc870\ud68c\ud560 \uc218 \uc788\ub2e4.<\/p>\n<pre><code class=\"language-bash\">vault secrets list<\/code><\/pre>\n<p>\uc544\ub798 \uba85\ub839\uc73c\ub85c team1 \uc774\ub77c\ub294 key-value \ubc29\uc2dd\uc758 Secret Engine \uc744 \uc0dd\uc131\ud560 \uc218 \uc788\ub2e4.<\/p>\n<pre><code class=\"language-bash\">vault secrets enable -path=team1 kv<\/code><\/pre>\n<h3>Secret \uc0dd\uc131 \ubc0f \uc870\ud68c<\/h3>\n<p>\uc544\ub798 \uba85\ub839\uc744 \uc2e4\ud589\ud558\uba74 key-value \ubc29\uc2dd\uc758 Secret \uc744 \uc800\uc7a5\/\uc870\ud68c\ud558\ub294 \uae30\ubcf8 \uc124\uba85\uc774 \ub098\uc628\ub2e4.<\/p>\n<pre><code class=\"language-bash\">vault kv<\/code><\/pre>\n<p>team1 \uc774\ub77c\ub294 Secret Engine \uc5d0 foo \ub77c\ub294 key \ub85c bar=baz \ub77c\ub294 \uac12\uc744 \uc800\uc7a5\ud55c\ub2e4.<\/p>\n<pre><code class=\"language-bash\"># vault kv put -mount=team1 foo bar=baz\nvault kv put team1\/foo bar=baz<\/code><\/pre>\n<p>\uc800\uc7a5\ub418\uc5b4 \uc788\ub294 \uac12\uc744 \uc544\ub798 \uba85\ub839\uc73c\ub85c \uc870\ud68c\ud560 \uc218 \uc788\ub2e4.<\/p>\n<pre><code class=\"language-bash\">vault kv list team1\nvault kv get team1\/foo<\/code><\/pre>\n<p>\uc544\ub798 \uba85\ub839\uc73c\ub85c \uc800\uc7a5\ub41c \uac12\uc744 \uc0ad\uc81c\ud560 \uc218 \uc788\ub2e4.<\/p>\n<pre><code class=\"language-bash\">vault kv delete team1\/foo<\/code><\/pre>\n<h3>Token \uc0dd\uc131 \ubc0f \uc870\ud68c<\/h3>\n<p>\uc544\ub798 \uba85\ub839\uc73c\ub85c Token \uad00\ub828 \uba85\ub839\uc744 \uc870\ud68c\ud560 \uc218 \uc788\ub2e4.<\/p>\n<p>Token \uc740 Secret \uc5d0 \ub300\ud55c \uad8c\ud55c(\uc870\ud68c, \uc218\uc815 \ub4f1)\uc744 \uc124\uc815\ud560\uc218 \uc788\ub2e4.<br \/>\nToken Policy \uc5d0 \ub300\ud574\uc11c\ub294 \uc544\ub798\uc5d0 \ubcc4\ub3c4\ub85c \uc124\uba85\ud55c\ub2e4.<\/p>\n<pre><code class=\"language-bash\">vault token<\/code><\/pre>\n<p>\uc544\ub798 \uba85\ub839\uc73c\ub85c \ud1a0\ud070\uc744 \uc0dd\uc131\ud55c\ub2e4.<\/p>\n<pre><code class=\"language-bash\">vault token create\nKey                  Value\n---                  -----\ntoken                hvs.qTo16tGpUBsdXXXXXXXXXXXX\ntoken_accessor       Y6YuNWXU6RHQXXXXXXXXXXXX\ntoken_duration       \u221e\ntoken_renewable      false\ntoken_policies       [&quot;root&quot;]\nidentity_policies    []\npolicies             [&quot;root&quot;]<\/code><\/pre>\n<p>\ud1a0\ud070\uc744 \uac31\uc2e0\ud55c\ub2e4.<br \/>\n(\uc704\uc5d0\uc11c \uc0dd\uc131\ud55c \ud1a0\ud070\uc740 token_renewable false \uc774\ubbc0\ub85c \uc544\ub798 \uba85\ub839\uc740 \uc624\ub958\ub97c \ubc18\ud658\ud55c\ub2e4.)<\/p>\n<pre><code class=\"language-bash\">vault token renew hvs.qTo16tGpUBsdXXXXXXXXXXXX<\/code><\/pre>\n<p>\ud1a0\ud070 \uc815\ubcf4\ub97c \uc870\ud68c\ud55c\ub2e4.<\/p>\n<pre><code class=\"language-bash\">vault token lookup hvs.qTo16tGpUBsdXXXXXXXXXXXX<\/code><\/pre>\n<p>\ud1a0\ud070\uc744 \uc0ad\uc81c\ud55c\ub2e4.<\/p>\n<pre><code class=\"language-bash\">vault token revoke hvs.qTo16tGpUBsdXXXXXXXXXXXX<\/code><\/pre>\n<h3>Token Policy<\/h3>\n<p>Token Policy \ub97c \uc774\uc6a9\ud574 Token \uc758 Secret \uc5d0 \ub300\ud55c \uad8c\ud55c(\uc870\ud68c, \uc218\uc815 \ub4f1)\uc744 \uc124\uc815\ud560\uc218 \uc788\ub2e4.<\/p>\n<pre><code class=\"language-bash\">vault policy list<\/code><\/pre>\n<pre><code class=\"language-bash\">vault policy read default<\/code><\/pre>\n<p>\uc815\ucc45 \ud30c\uc77c\uc744 \uc0dd\uc131\ud55c\ub2e4.<\/p>\n<pre><code class=\"language-bash\">type team1-policy.cfg\n......\npath &quot;team1\/*&quot; {\n  capabilities = [&quot;create&quot;, &quot;update&quot;]\n}\n\npath &quot;team1\/foo&quot; {\n  capabilities = [&quot;read&quot;]\n}\n......<\/code><\/pre>\n<p>\uc800\uc7a5\ub41c \uc815\ucc45\uc744 \uc124\uc815\ud55c \ud1a0\ud070\uc744 \uc0dd\uc131\ud55c\ub2e4.<\/p>\n<pre><code class=\"language-bash\">vault policy write team1-policy team1-policy.cfg\nvault policy list<\/code><\/pre>\n<pre><code class=\"language-bash\">vault token create -policy=team1-policy<\/code><\/pre>\n<p>\uc704\uc5d0\uc11c \uc0dd\uc131\ud55c \ud1a0\ud070\uc744 \uc124\uc815\ud574 \uc900\ub2e4.<\/p>\n<pre><code class=\"language-bash\"># windows\nset VAULT_TOKEN=hvs.xOqwzjjXXXXXXXXXXXXX\n\n# linux\nexport VAULT_TOKEN=&quot;hvs.xOqwzjjXXXXXXXXXXXXX&quot;<\/code><\/pre>\n<p>\uad8c\ud55c\uc774 \ubd80\uc5ec\ub418\uc9c0 \uc54a\uc740 \uc561\uc158\uc740 \uc624\ub958\ub97c \ubc18\ud658\ud55c\ub2e4.<\/p>\n<pre><code class=\"language-bash\"># OK\nvault kv get team1\/foo\nvault kv put team1\/foo1 bar=baz\nvault kv put team1\/foo2 bar=baz\n\n# ERROR\nvault kv get team1\/foo1<\/code><\/pre>\n<h2>AppRole \uc0dd\uc131 \ubc0f \uc870\ud68c<\/h2>\n<p>\uc9c0\uae08\uae4c\uc9c0\ub294 \ub8e8\ud2b8 \ud1a0\ud070\uc744 \uc774\uc6a9\ud574 \ubaa8\ub4e0 \uc124\uc815\uc744 \uc9c4\ud589\ud574 \uc654\uc9c0\ub9cc,<br \/>\n\uc2e4\uc11c\ubc84\uc5d0\uc11c\ub294 \ub8e8\ud2b8 \ud1a0\ud070\uc744 \uc0ac\uc6a9\ud574\uc11c\ub294 \uc548\ub41c\ub2e4.<\/p>\n<p>\ub8e8\ud2b8\ud1a0\ud070\uc744 \ub300\uccb4\ud558\uae30 \uc704\ud574 \uc0ac\uc6a9\ub418\ub294 \uac83\uc774 AppRole \uc774\ub2e4.<\/p>\n<h3>\uc791\ub3d9\ubc29\uc2dd<\/h3>\n<ul>\n<li>(Vault \uad00\ub9ac\uc790\ub294) Token Policy \uc640 AppRole \uc744 \ub9cc\ub4ed\ub2c8\ub2e4.<\/li>\n<li>(Vault \uad00\ub9ac\uc790\ub294) RoleID \uc640 SecretID \ub97c \ubc1c\uae09\ud558\uace0 App \uc5d0 \uc804\ub2ec\ud569\ub2c8\ub2e4.<\/li>\n<li>(Vault \uad00\ub9ac\uc790\ub294) Secret \uc744 \ub9cc\ub4ed\ub2c8\ub2e4.<\/li>\n<li>(App \uc740) \uc804\ub2ec\ubc1b\uc740 RoleID \uc640 SecretID \ub97c \uc774\uc6a9\ud574 Token \uc744 \uc0dd\uc131\ud569\ub2c8\ub2e4.<\/li>\n<li>(App \uc740) AppRole Token \uc73c\ub85c \ub85c\uadf8\uc778\ud558\uace0 \ube44\ubc00\uc815\ubcf4\ub97c \uac00\uc838\uc640 \uc0ac\uc6a9\ud569\ub2c8\ub2e4. (Token\uc740 1\ubd84 \ud6c4 \ub9cc\ub8cc)<\/li>\n<\/ul>\n<h3>AppRole \uc0dd\uc131<\/h3>\n<p>AppRole \uc744 \uc0dd\uc131\ud558\uae30 \uc704\ud574 \ub2e4\uc2dc \ub8e8\ud2b8 \ud1a0\ud070\uc73c\ub85c \ubcc0\uacbd\ud55c\ub2e4.<\/p>\n<pre><code class=\"language-bash\"># windows\nset VAULT_TOKEN=hvs.xOqwzjjXXXXXXXXXXXXX\n\n# linux\nexport VAULT_TOKEN=&quot;hvs.xOqwzjjXXXXXXXXXXXXX&quot;<\/code><\/pre>\n<pre><code class=\"language-bash\">vault auth list<\/code><\/pre>\n<p><code>approle\/<\/code> \uc774\ub77c\ub294 \ud1a0\ud070\uc774 \uc5c6\uc73c\uba74 \uc0dd\uc131\ud574 \uc900\ub2e4.<\/p>\n<pre><code class=\"language-bash\">vault auth enable approle\nvault auth list<\/code><\/pre>\n<pre><code class=\"language-bash\"># windows\nvault write auth\/approle\/role\/team1-role ^\nsecret_id_ttl=10m ^\ntoken_num_uses=10 ^\ntoken_ttl=20m ^\ntoken_max_ttl=30m ^\nsecret_id_num_uses=40 ^\ntoken_policies=team1-policy\n\n# linux\nvault write auth\/approle\/role\/team1-role \\\nsecret_id_ttl=10m \\\ntoken_num_uses=10 \\\ntoken_ttl=20m \\\ntoken_max_ttl=30m \\\nsecret_id_num_uses=40 \\\ntoken_policies=team1-policy<\/code><\/pre>\n<pre><code class=\"language-bash\">vault list auth\/approle\/role\nvault read auth\/approle\/role\/team1-role\n\n# get id(role-id)\nvault read auth\/approle\/role\/team1-role\/role-id\nvault read -field=role_id auth\/approle\/role\/team1-role\/role-id\n\n# get password(secret-id)\nvault write -f -field=secret_id auth\/approle\/role\/team1-role\/secret-id<\/code><\/pre>\n<pre><code class=\"language-bash\"># windows\nset ROLE_ID=7e4e506e-6790-eb79-eXXXXXXXXXXXXX\nset SECRET_ID=4c77fb5c-7c11-d0e8-ff7XXXXXXXXXXX\n\n# linux\nexport ROLE_ID=&quot;7e4e506e-6790-eb79-eXXXXXXXXXXXXX&quot;\nexport SECRET_ID=&quot;4c77fb5c-7c11-d0e8-ff7XXXXXXXXXXX&quot;<\/code><\/pre>\n<p>\uc544\ub798 \uba85\ub839\uc73c\ub85c \ud1a0\ud070\uc774 \uc0dd\uc131\ub418\ub294 \uac83\uc744 \ud655\uc778\ud560 \uc218 \uc788\ub2e4.<\/p>\n<pre><code class=\"language-bash\"># windows\nvault write auth\/approle\/login role_id=%ROLE_ID% secret_id=%SECRET_ID%\n\n# linux\nvault write auth\/approle\/login role_id=&quot;$ROLE_ID&quot; secret_id=&quot;$SECRET_ID&quot;<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Hashicorp Vault \uc2dc\uc791\ud558\uae30 Vault \ub780? Secret(\ube44\ubc00\ubc88\ud638, \uc778\uc99d\ud0a4 \ub4f1) \uc744 \uad00\ub9ac\ud558\ub294 \ud234\uc774\ub2e4. \uc6a9\uc5b4\uc815\ub9ac Storage Backend Secret \uc774 \uc2e4\uc81c\ub85c \uc800\uc7a5\ub420 \uc800\uc7a5\uc18c\ub97c \ub9d0\ud55c\ub2e4. \uc800\uc7a5\uc18c\ub294 File, Consul, \uac01\uc885DB(MySQL \ub4f1), AWS S3 \ub4f1\uc774 \ub420 \uc218 \uc788\ub2e4. Secret Backend Secret \uc774 \uc800\uc7a5\ub420 \uc800\uc7a5\ubc29\uc2dd\uc744 \ub9d0\ud55c\ub2e4. \uc5ec\ub7ec\uac00\uc9c0 \ubc29\uc2dd\uc774 \uc788\ub294 \ub4ef \ud558\uc9c0\ub9cc key-value \ubc29\uc2dd\uc774 \ub2e8\uc21c\ud558\uace0 \ud3b8\ud558\ub2e4. Auth Backend Secret \uc744 \ubc1b\uc544\uc624\uae30 \uc704\ud55c \uc778\uc99d\ubc29\uc2dd\uc744 \ub9d0\ud55c\ub2e4.\u2026 <span class=\"read-more\"><a href=\"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=6556\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[31],"tags":[],"class_list":["post-6556","post","type-post","status-publish","format-standard","hentry","category-nomad"],"_links":{"self":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/6556","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=6556"}],"version-history":[{"count":17,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/6556\/revisions"}],"predecessor-version":[{"id":6629,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/6556\/revisions\/6629"}],"wp:attachment":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6556"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=6556"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=6556"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}