{"id":34988,"date":"2024-09-19T16:41:27","date_gmt":"2024-09-19T09:41:27","guid":{"rendered":"http:\/\/jupitek.maudemo.vip\/index.php\/2024\/09\/19\/secrets-management-with-salt\/"},"modified":"2024-09-19T16:41:27","modified_gmt":"2024-09-19T09:41:27","slug":"secrets-management-with-salt","status":"publish","type":"post","link":"https:\/\/jupitek.maudemo.vip\/index.php\/2024\/09\/19\/secrets-management-with-salt\/","title":{"rendered":"Qu\u1ea3n l\u00fd Secrets v\u1edbi Salt"},"content":{"rendered":"<p>Salt l\u00e0 m\u1ed9t c\u00f4ng c\u1ee5 qu\u1ea3n l\u00fd c\u1ea5u h\u00ecnh m\u1ea1nh m\u1ebd gi\u00fap b\u1ea1n qu\u1ea3n l\u00fd vi\u1ec7c tri\u1ec3n khai m\u00e1y ch\u1ee7 c\u1ee7a m\u00ecnh b\u1eb1ng c\u00e1c t\u1ec7p&nbsp;<em>tr\u1ea1ng th\u00e1i<\/em>&nbsp;c\u1ea5u h\u00ecnh . C\u00e1c t\u1ec7p n\u00e0y d\u1ec5 d\u00e0ng \u0111\u01b0\u1ee3c chia s\u1ebb v\u1edbi nh\u1eefng ng\u01b0\u1eddi kh\u00e1c trong nh\u00f3m c\u1ee7a b\u1ea1n v\u00e0 c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c ki\u1ec3m tra trong c\u00e1c h\u1ec7 th\u1ed1ng ki\u1ec3m so\u00e1t phi\u00ean b\u1ea3n nh\u01b0 Git.<\/p>\n<p>M\u1ed9t v\u1ea5n \u0111\u1ec1 th\u01b0\u1eddng g\u1eb7p khi l\u00e0m vi\u1ec7c v\u1edbi c\u00e1c t\u1ec7p tr\u1ea1ng th\u00e1i c\u1ee7a Salt l\u00e0 c\u1ea7n truy c\u1eadp v\u00e0o d\u1eef li\u1ec7u nh\u1ea1y c\u1ea3m, nh\u01b0 kh\u00f3a API v\u00e0 m\u1eadt kh\u1ea9u c\u01a1 s\u1edf d\u1eef li\u1ec7u, trong c\u00e1c t\u1ec7p \u0111\u00f3. Vi\u1ec7c nh\u00fang tr\u1ef1c ti\u1ebfp th\u00f4ng tin \u0111\u00f3 d\u01b0\u1edbi d\u1ea1ng v\u0103n b\u1ea3n thu\u1ea7n t\u00fay b\u00ean trong c\u00e1c t\u1ec7p tr\u1ea1ng th\u00e1i c\u1ee7a b\u1ea1n c\u00f3 th\u1ec3 g\u00e2y ra l\u1ed7 h\u1ed5ng b\u1ea3o m\u1eadt, \u0111\u1eb7c bi\u1ec7t l\u00e0 n\u1ebfu b\u1ea1n ki\u1ec3m tra c\u00e1c t\u1ec7p \u0111\u00f3 trong ki\u1ec3m so\u00e1t phi\u00ean b\u1ea3n. H\u01b0\u1edbng d\u1eabn n\u00e0y s\u1ebd kh\u00e1m ph\u00e1 m\u1ed9t s\u1ed1 ph\u01b0\u01a1ng ph\u00e1p ph\u1ed5 bi\u1ebfn \u0111\u1ec3 b\u1ea3o m\u1eadt b\u00ed m\u1eadt c\u1ee7a b\u1ea1n trong Salt.<\/p>\n<h2 id=\"salt-pillar\">Salt Pillar<a href=\"https:\/\/www.linode.com\/docs\/guides\/secrets-management-with-salt\/#salt-pillar\"><\/a><a href=\"https:\/\/www.linode.com\/docs\/guides\/secrets-management-with-salt\/#salt-pillar\"><\/a><\/h2>\n<p>M\u1ed9t ph\u01b0\u01a1ng ph\u00e1p ch\u00ednh \u0111\u1ec3 l\u01b0u tr\u1eef b\u00ed m\u1eadt trong Salt l\u00e0 gi\u1eef ch\u00fang trong t\u00ednh n\u0103ng&nbsp;<a href=\"https:\/\/docs.saltproject.io\/en\/latest\/topics\/pillar\/\" target=\"_blank\" rel=\"noreferrer noopener\"><em>Pillar<\/em><\/a>&nbsp;c\u1ee7a Salt . Salt Pillar \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf \u0111\u1ec3 duy tr\u00ec b\u00ed m\u1eadt v\u00e0 th\u00f4ng tin bi\u1ebfn \u0111\u1ed5i kh\u00e1c \u1edf m\u1ed9t v\u1ecb tr\u00ed duy nh\u1ea5t (th\u01b0\u1eddng l\u00e0 tr\u00ean Salt master) v\u00e0 sau \u0111\u00f3 cung c\u1ea5p th\u00f4ng tin \u0111\u00f3 cho c\u00e1c minion c\u1ee5 th\u1ec3. N\u1ebfu b\u1ea1n t\u00e1ch b\u00ed m\u1eadt c\u1ee7a m\u00ecnh ra kh\u1ecfi c\u00e1c tr\u1ea1ng th\u00e1i v\u00e0 v\u00e0o c\u00e1c t\u1ec7p tr\u1ee5 c\u1ed9t, b\u1ea1n c\u00f3 th\u1ec3 b\u1ecf qua c\u00e1c t\u1ec7p \u0111\u00f3 trong h\u1ec7 th\u1ed1ng ki\u1ec3m so\u00e1t phi\u00ean b\u1ea3n c\u1ee7a m\u00ecnh.<\/p>\n<p class=\"has-background\" style=\"background-color:#74f78c33\">Ghi ch\u00fa:Ngo\u00e0i vi\u1ec7c l\u01b0u tr\u1eef b\u00ed m\u1eadt, Salt Pillar c\u0169ng c\u00f3 th\u1ec3 duy tr\u00ec d\u1eef li\u1ec7u kh\u00f4ng nh\u1ea1y c\u1ea3m; v\u00ed d\u1ee5, c\u00e1c phi\u00ean b\u1ea3n c\u1ee7a c\u00e1c g\u00f3i b\u1ea1n mu\u1ed1n c\u00e0i \u0111\u1eb7t tr\u00ean minion c\u1ee7a m\u00ecnh. V\u00ec v\u1eady, b\u1ea1n v\u1eabn c\u00f3 th\u1ec3 mu\u1ed1n theo d\u00f5i m\u1ed9t s\u1ed1 t\u1ec7p tr\u1ee5 c\u1ed9t trong ki\u1ec3m so\u00e1t phi\u00ean b\u1ea3n.<\/p>\n<p class=\"has-background\" style=\"background-color:#74f78c33\">\u0110\u1ec3 x\u1eed l\u00fd s\u1ef1 kh\u00e1c bi\u1ec7t n\u00e0y, b\u1ea1n c\u00f3 th\u1ec3 t\u1ea1o m\u1ed9t th\u01b0 m\u1ee5c \u0111\u1eb7c bi\u1ec7t t\u1ea1i&nbsp;<code>\/srv\/pillar\/secrets<\/code>v\u00e0 th\u00eam thi\u1ebft l\u1eadp h\u1ec7 th\u1ed1ng ki\u1ec3m so\u00e1t phi\u00ean b\u1ea3n c\u1ee7a b\u1ea1n \u0111\u1ec3 b\u1ecf qua th\u01b0 m\u1ee5c \u0111\u00f3 (khi s\u1eed d\u1ee5ng Git, h\u00e3y li\u1ec7t k\u00ea th\u01b0 m\u1ee5c n\u00e0y trong&nbsp;<code>.gitignore<\/code>t\u1ec7p c\u1ee7a b\u1ea1n). Gi\u1eef t\u1ea5t c\u1ea3 d\u1eef li\u1ec7u nh\u1ea1y c\u1ea3m b\u00ean trong c\u00e1c t\u1ec7p tr\u1ee5 c\u1ed9t trong th\u01b0 m\u1ee5c n\u00e0y v\u00e0 duy tr\u00ec d\u1eef li\u1ec7u kh\u00f4ng nh\u1ea1y c\u1ea3m trong c\u00e1c t\u1ec7p tr\u1ee5 c\u1ed9t trong&nbsp;<code>\/srv\/pillar<\/code>ho\u1eb7c m\u1ed9t th\u01b0 m\u1ee5c con kh\u00e1c.<\/p>\n<h3 id=\"anatomy-of-pillar-data-files\">Gi\u1ea3i ph\u1eabu c\u1ee7a c\u00e1c t\u1eadp tin d\u1eef li\u1ec7u tr\u1ee5 c\u1ed9t<a href=\"https:\/\/www.linode.com\/docs\/guides\/secrets-management-with-salt\/#anatomy-of-pillar-data-files\"><\/a><\/h3>\n<p>D\u1eef li\u1ec7u tr\u1ee5 c\u1ed9t \u0111\u01b0\u1ee3c l\u01b0u trong&nbsp;<code>.sls<\/code>c\u00e1c t\u1ec7p \u0111\u01b0\u1ee3c vi\u1ebft theo c\u00f9ng c\u00fa ph\u00e1p YAML nh\u01b0 c\u00e1c tr\u1ea1ng th\u00e1i. Ch\u00fang th\u01b0\u1eddng \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef trong&nbsp;<code>\/srv\/pillar<\/code>m\u00e1y ch\u1ee7 Salt, nh\u01b0ng v\u1ecb tr\u00ed n\u00e0y c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c c\u1ea5u h\u00ecnh th\u00f4ng qua&nbsp;<code>pillar_roots<\/code>t\u00f9y ch\u1ecdn trong c\u1ea5u h\u00ecnh m\u00e1y ch\u1ee7 c\u1ee7a b\u1ea1n.<\/p>\n<p>V\u00ed d\u1ee5, gi\u1ea3 s\u1eed minion c\u1ee7a b\u1ea1n ch\u1ea1y m\u1ed9t \u1ee9ng d\u1ee5ng truy c\u1eadp&nbsp;<a href=\"https:\/\/www.linode.com\/docs\/products\/tools\/api\/\">API Linode<\/a>&nbsp;. T\u1ec7p tr\u1ee5 c\u1ed9t v\u00ed d\u1ee5 n\u00e0y ghi l\u1ea1i m\u00e3 th\u00f4ng b\u00e1o API c\u1ee7a b\u1ea1n trong m\u1ed9t bi\u1ebfn c\u00f3 t\u00ean l\u00e0&nbsp;<code>linode_api_token<\/code>:<\/p>\n<pre class=\"wp-block-code\"><code>linode_api_token: YOUR_API_TOKEN<\/code><\/pre>\n<p>Gi\u1ed1ng nh\u01b0 c\u00e1c t\u1ec7p tr\u1ea1ng th\u00e1i, t\u1ec7p top (ri\u00eang v\u1edbi t\u1ec7p top c\u1ee7a tr\u1ea1ng th\u00e1i) \u00e1nh x\u1ea1 d\u1eef li\u1ec7u tr\u1ee5 c\u1ed9t t\u1edbi c\u00e1c minion. V\u00ed d\u1ee5 t\u1ec7p top n\u00e0y \u00e1nh x\u1ea1 d\u1eef li\u1ec7u&nbsp;<code>app_secrets<\/code>tr\u1ee5 c\u1ed9t c\u1ee7a b\u1ea1n t\u1edbi m\u00e1y ch\u1ee7 \u1ee9ng d\u1ee5ng c\u1ee7a b\u1ea1n:<\/p>\n<pre class=\"wp-block-code\"><code>base:\n  'appserver':\n    - app_secrets<\/code><\/pre>\n<p class=\"has-background\" style=\"background-color:#74f78c33\">Ghi ch\u00fa: B\u1ea1n c\u00f3 th\u1ec3 mu\u1ed1n t\u1ea1o m\u1ed9t&nbsp;<code>pillar.example<\/code>t\u1ec7p (gi\u1ed1ng nh\u01b0 nh\u1eefng t\u1ec7p do Salt formulas cung c\u1ea5p) li\u1ec7t k\u00ea t\u1ea5t c\u1ea3 c\u00e1c kh\u00f3a bi\u1ebfn \u0111\u00e3 bi\u1ebft cho tr\u1ee5 c\u1ed9t c\u1ee7a b\u1ea1n nh\u01b0ng kh\u00f4ng ch\u1ee9a c\u00e1c b\u00ed m\u1eadt th\u1ef1c t\u1ebf. N\u1ebfu b\u1ea1n ki\u1ec3m tra t\u1ec7p n\u00e0y trong ki\u1ec3m so\u00e1t phi\u00ean b\u1ea3n c\u1ee7a m\u00ecnh, nh\u1eefng ng\u01b0\u1eddi d\u00f9ng kh\u00e1c sao ch\u00e9p kho l\u01b0u tr\u1eef tr\u1ea1ng th\u00e1i c\u1ee7a b\u1ea1n c\u00f3 th\u1ec3 sao ch\u00e9p t\u1ec7p tr\u1ee5 c\u1ed9t m\u1eabu n\u00e0y v\u00e0 thi\u1ebft l\u1eadp tri\u1ec3n khai c\u1ee7a ri\u00eang h\u1ecd nhanh h\u01a1n.<\/p>\n<h3 id=\"accessing-pillar-data-inside-salt-states\">Truy c\u1eadp d\u1eef li\u1ec7u Pillar b\u00ean trong Salt States<a href=\"https:\/\/www.linode.com\/docs\/guides\/secrets-management-with-salt\/#accessing-pillar-data-inside-salt-states\"><\/a><\/h3>\n<p>\u0110\u1ec3 \u0111\u01b0a d\u1eef li\u1ec7u tr\u1ee5 c\u1ed9t v\u00e0o tr\u1ea1ng th\u00e1i c\u1ee7a b\u1ea1n, h\u00e3y s\u1eed d\u1ee5ng c\u00fa ph\u00e1p m\u1eabu Jinja c\u1ee7a Salt. Trong khi Salt s\u1eed d\u1ee5ng c\u00fa ph\u00e1p YAML cho c\u00e1c t\u1ec7p tr\u1ea1ng th\u00e1i v\u00e0 tr\u1ee5 c\u1ed9t, c\u00e1c t\u1ec7p n\u00e0y tr\u01b0\u1edbc ti\u00ean \u0111\u01b0\u1ee3c di\u1ec5n gi\u1ea3i l\u00e0 c\u00e1c m\u1eabu Jinja (theo m\u1eb7c \u0111\u1ecbnh).<\/p>\n<p>Tr\u1ea1ng th\u00e1i v\u00ed d\u1ee5 n\u00e0y nh\u00fang m\u00e3 th\u00f4ng b\u00e1o API v\u00e0o m\u1ed9t t\u1ec7p tr\u00ean Linode c\u1ee7a b\u1ea1n; d\u1eef li\u1ec7u \u0111\u01b0\u1ee3c truy c\u1eadp th\u00f4ng qua&nbsp;<code>pillar<\/code>t\u1eeb \u0111i\u1ec3n:<\/p>\n<pre class=\"wp-block-code\"><code>api_token:\n  file.managed:\n    - name: \/var\/your_app\/api_token\n    - contents: {{ pillar&#91;'linode_api_token'] }}<\/code><\/pre>\n<p class=\"has-background\" style=\"background-color:#f32a2a33\">Quan tr\u1ecdng: C\u00f3 nh\u1eefng l\u00fac d\u1eef li\u1ec7u tr\u1ee5 c\u1ed9t c\u00f3 th\u1ec3 hi\u1ec3n th\u1ecb trong \u0111\u1ea7u ra m\u00e0 Salt t\u1ea1o ra, nh\u01b0 khi&nbsp;<code>file.managed<\/code>hi\u1ec3n th\u1ecb s\u1ef1 kh\u00e1c bi\u1ec7t c\u1ee7a m\u1ed9t t\u1ec7p \u0111\u00e3 s\u1eeda \u0111\u1ed5i. \u0110\u1ec3 tr\u00e1nh hi\u1ec3n th\u1ecb nh\u1eefng s\u1ef1 kh\u00e1c bi\u1ec7t n\u00e0y, b\u1ea1n c\u00f3 th\u1ec3 \u0111\u1eb7t c\u1edd&nbsp;<code>file.managed<\/code>&#8216;&nbsp;<code>show_diff<\/code>th\u00e0nh false.<\/p>\n<h3 id=\"passing-pillar-data-at-the-command-line\">Truy\u1ec1n d\u1eef li\u1ec7u Pillar t\u1ea1i d\u00f2ng l\u1ec7nh<a href=\"https:\/\/www.linode.com\/docs\/guides\/secrets-management-with-salt\/#passing-pillar-data-at-the-command-line\"><\/a><\/h3>\n<p>B\u1ea1n c\u0169ng c\u00f3 th\u1ec3 cung c\u1ea5p c\u00e1c gi\u00e1 tr\u1ecb tr\u1ee5 c\u1ed9t d\u01b0\u1edbi d\u1ea1ng t\u1eeb \u0111i\u1ec3n th\u00f4ng qua d\u00f2ng l\u1ec7nh v\u00e0 c\u00e1c gi\u00e1 tr\u1ecb \u0111\u00f3 s\u1ebd ghi \u0111\u00e8 l\u00ean b\u1ea5t k\u1ef3 gi\u00e1 tr\u1ecb n\u00e0o \u0111\u01b0\u1ee3c \u0111\u1eb7t trong c\u00e1c t\u1ec7p tr\u1ee5 c\u1ed9t c\u1ee7a b\u1ea1n. L\u1ec7nh v\u00ed d\u1ee5 n\u00e0y s\u1ebd \u00e1p d\u1ee5ng gi\u00e1&nbsp;<code>A_DIFFERENT_API_TOKEN<\/code>tr\u1ecb thay v\u00ec gi\u00e1 tr\u1ecb g\u1ed1c&nbsp;<code>YOUR_API_TOKEN<\/code>t\u1eeb v\u00ed d\u1ee5 tr\u01b0\u1edbc:<\/p>\n<pre class=\"wp-block-code\"><code>salt '*' state.apply pillar='{\"linode_api_token\": \"A_DIFFERENT_API_TOKEN\"}'\n<\/code><\/pre>\n<h2 id=\"environment-variables\">Bi\u1ebfn m\u00f4i tr\u01b0\u1eddng<a href=\"https:\/\/www.linode.com\/docs\/guides\/secrets-management-with-salt\/#environment-variables\"><\/a><\/h2>\n<p>M\u1ed9t c\u00e1ch kh\u00e1c \u0111\u1ec3 gi\u1eef c\u00e1c gi\u00e1 tr\u1ecb nh\u1ea1y c\u1ea3m ngo\u00e0i t\u1ea7m ki\u1ec3m so\u00e1t phi\u00ean b\u1ea3n l\u00e0 s\u1eed d\u1ee5ng bi\u1ebfn m\u00f4i tr\u01b0\u1eddng. Ph\u01b0\u01a1ng ph\u00e1p truy\u1ec1n bi\u1ebfn m\u00f4i tr\u01b0\u1eddng cho c\u00e1c tr\u1ea1ng th\u00e1i c\u1ee7a b\u1ea1n t\u01b0\u01a1ng t\u1ef1 nh\u01b0 c\u00e1ch d\u1eef li\u1ec7u tr\u1ee5 c\u1ed9t c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c truy\u1ec1n qua d\u00f2ng l\u1ec7nh. Bi\u1ebfn m\u00f4i tr\u01b0\u1eddng \u0111\u1eb7t ti\u1ec1n t\u1ed1 cho l\u1ec7nh salt c\u1ee7a b\u1ea1n, nh\u01b0 trong v\u00ed d\u1ee5 n\u00e0y:<\/p>\n<pre class=\"wp-block-code\"><code>LINODE_API_TOKEN=\"YOUR_API_TOKEN\" salt 'appserver' state.apply setup_app\n<\/code><\/pre>\n<p>Bi\u1ebfn m\u00f4i tr\u01b0\u1eddng \u0111\u01b0\u1ee3c tham chi\u1ebfu b\u1edfi t\u1ec7p tr\u1ea1ng th\u00e1i Salt th\u00f4ng qua&nbsp;<code>salt['environ.get']('ENVIRONMENT_VARIABLE_NAME')<\/code>c\u00fa ph\u00e1p.&nbsp;<code>setup_app<\/code>Tr\u1ea1ng th\u00e1i v\u00ed d\u1ee5 tr\u01b0\u1edbc c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c \u0111i\u1ec1u ch\u1ec9nh \u0111\u1ec3 s\u1eed d\u1ee5ng bi\u1ebfn m\u00f4i tr\u01b0\u1eddng nh\u01b0 sau:<\/p>\n<pre class=\"wp-block-code\"><code>api_token:\n  file.managed:\n    - name: \/var\/your_app\/api_token\n    - contents: {{ salt&#91;'environ.get']('LINODE_API_TOKEN') }}<\/code><\/pre>\n<p>T\u01b0\u01a1ng t\u1ef1 nh\u01b0 v\u00ed d\u1ee5 v\u1ec1 tr\u1ee5 c\u1ed9t tr\u01b0\u1edbc, b\u1ea1n s\u1ebd mu\u1ed1n gi\u1eef&nbsp;<code>file.managed<\/code>&#8216;s diffs kh\u00f4ng xu\u1ea5t hi\u1ec7n tr\u00ean m\u00e0n h\u00ecnh khi x\u1eed l\u00fd th\u00f4ng tin nh\u1ea1y c\u1ea3m b\u1eb1ng c\u00e1ch thi\u1ebft l\u1eadp&nbsp;<code>show_diff: false<\/code>. \u0110\u1ec3 bi\u1ebft th\u00eam th\u00f4ng tin, h\u00e3y xem&nbsp;<a href=\"https:\/\/docs.saltproject.io\/en\/latest\/topics\/tutorials\/states_pt3.html#using-environment-variables-in-sls-modules\" target=\"_blank\" rel=\"noreferrer noopener\">S\u1eed d\u1ee5ng Bi\u1ebfn m\u00f4i tr\u01b0\u1eddng trong M\u00f4-\u0111un SLS<\/a>&nbsp;.<\/p>\n<h2 id=\"gpg-encryption\">M\u00e3 h\u00f3a GPG<a href=\"https:\/\/www.linode.com\/docs\/guides\/secrets-management-with-salt\/#gpg-encryption\"><\/a><\/h2>\n<p><a href=\"https:\/\/docs.saltproject.io\/en\/latest\/ref\/renderers\/all\/salt.renderers.gpg.html\" target=\"_blank\" rel=\"noreferrer noopener\">B\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng tr\u00ecnh k\u1ebft xu\u1ea5t GPG<\/a>&nbsp;c\u1ee7a Salt&nbsp;\u0111\u1ec3 gi\u1ea3i m\u00e3 c\u00e1c m\u00e3 h\u00f3a GPG n\u1eb1m trong c\u00e1c t\u1ec7p tr\u1ee5 c\u1ed9t c\u1ee7a b\u1ea1n. B\u01b0\u1edbc gi\u1ea3i m\u00e3 n\u00e0y di\u1ec5n ra tr\u01b0\u1edbc khi d\u1eef li\u1ec7u tr\u1ee5 c\u1ed9t c\u1ee7a b\u1ea1n \u0111\u01b0\u1ee3c chuy\u1ec3n \u0111\u1ebfn c\u00e1c minion c\u1ee7a b\u1ea1n. Do \u0111\u00f3, b\u1ea5t k\u1ef3 gi\u00e1 tr\u1ecb n\u00e0o trong t\u1ec7p tr\u1ee5 c\u1ed9t \u0111\u1ec1u c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c m\u00e3 h\u00f3a. V\u00ec c\u00e1c gi\u00e1 tr\u1ecb \u0111\u01b0\u1ee3c m\u00e3 h\u00f3a, b\u1ea1n c\u00f3 th\u1ec3 l\u01b0u tr\u1eef c\u00e1c t\u1ec7p tr\u1ee5 c\u1ed9t c\u1ee7a m\u00ecnh trong ki\u1ec3m so\u00e1t phi\u00ean b\u1ea3n m\u1ed9t c\u00e1ch an to\u00e0n.<\/p>\n<p>C\u00e1ch ti\u1ebfp c\u1eadn n\u00e0y y\u00eau c\u1ea7u kh\u00f3a b\u00ed m\u1eadt GPG \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef tr\u00ean m\u00e1y ch\u1ee7 Salt c\u1ee7a b\u1ea1n. C\u0169ng h\u1ee3p l\u00fd khi \u0111\u01b0a kh\u00f3a c\u00f4ng khai v\u00e0o ki\u1ec3m so\u00e1t phi\u00ean b\u1ea3n \u0111\u1ec3 c\u00e1c th\u00e0nh vi\u00ean trong nh\u00f3m c\u1ee7a b\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng kh\u00f3a n\u00e0y \u0111\u1ec3 m\u00e3 h\u00f3a d\u1eef li\u1ec7u m\u1edbi cho c\u00e1c t\u1ec7p tr\u1ee5 c\u1ed9t c\u1ee7a b\u1ea1n.<\/p>\n<h2 id=\"sdb\">Ng\u00e2n h\u00e0ng<a href=\"https:\/\/www.linode.com\/docs\/guides\/secrets-management-with-salt\/#sdb\"><\/a><\/h2>\n<p>Salt \u0111i k\u00e8m v\u1edbi m\u1ed9t giao di\u1ec7n c\u01a1 s\u1edf d\u1eef li\u1ec7u c\u00f3 t\u00ean l\u00e0&nbsp;<em>SDB<\/em>&nbsp;, ban \u0111\u1ea7u \u0111\u01b0\u1ee3c t\u1ea1o ra \u0111\u1ec3 l\u01b0u tr\u1eef d\u1eef li\u1ec7u kh\u00f4ng d\u00e0nh ri\u00eang cho minion, ch\u1eb3ng h\u1ea1n nh\u01b0 m\u1eadt kh\u1ea9u. N\u00f3 \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf \u0111\u1ec3 k\u1ebft n\u1ed1i v\u1edbi m\u1ed9t g\u00f3i nh\u01b0 m\u00f4-&nbsp;<a href=\"https:\/\/docs.saltproject.io\/en\/latest\/ref\/sdb\/all\/salt.sdb.keyring_db.html\" target=\"_blank\" rel=\"noreferrer noopener\"><em>\u0111un m\u00f3c kh\u00f3a<\/em><\/a>&nbsp;c\u1ee7a Salt , nh\u01b0ng c\u0169ng c\u00f3 c\u00e1c t\u00f9y ch\u1ecdn kh\u00e1c, ch\u1eb3ng h\u1ea1n nh\u01b0&nbsp;<a href=\"https:\/\/docs.saltproject.io\/en\/latest\/ref\/sdb\/all\/salt.sdb.consul.html\" target=\"_blank\" rel=\"noreferrer noopener\">Consul<\/a>&nbsp;v\u00e0&nbsp;<a href=\"https:\/\/docs.saltproject.io\/en\/latest\/ref\/sdb\/all\/salt.sdb.vault.html#module-salt.sdb.vault\" target=\"_blank\" rel=\"noreferrer noopener\">Vault<\/a>&nbsp;.<\/p>\n<p>C\u00e1c c\u01a1 s\u1edf d\u1eef li\u1ec7u n\u00e0y \u0111\u01b0\u1ee3c thi\u1ebft l\u1eadp b\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng c\u1ea5u h\u00ecnh trong&nbsp;<code>\/srv\/salt\/master.d<\/code>. \u0110\u1ec3 truy c\u1eadp d\u1eef li\u1ec7u, b\u1ea1n cung c\u1ea5p m\u1ed9t&nbsp;<code>sdb:\/\/<\/code>url, ch\u1eb3ng h\u1ea1n nh\u01b0&nbsp;<code>password: sdb:\/\/mysecrets\/mypassword<\/code>. \u0110\u1ec3 bi\u1ebft th\u00eam th\u00f4ng tin v\u1ec1 SDB, h\u00e3y tham kh\u1ea3o&nbsp;<a href=\"https:\/\/docs.saltproject.io\/en\/latest\/topics\/sdb\/\" target=\"_blank\" rel=\"noreferrer noopener\">t\u00e0i li\u1ec7u Salt SDB<\/a>&nbsp;.<\/p>\n<p class=\"has-background\" style=\"background-color:#74f78c33\">Ghi ch\u00fa: Salt c\u0169ng cung c\u1ea5p m\u1ed9t m\u00f4-\u0111un cho ph\u00e9p&nbsp;<a href=\"https:\/\/docs.saltproject.io\/en\/latest\/ref\/pillar\/all\/salt.pillar.vault.html\" target=\"_blank\" rel=\"noreferrer noopener\">l\u01b0u tr\u1eef d\u1eef li\u1ec7u tr\u1ee5 c\u1ed9t trong Vault<\/a>&nbsp;, c\u0169ng nh\u01b0 m\u1ed9t m\u00f4-\u0111un th\u1ef1c thi bao g\u1ed3m&nbsp;<a href=\"https:\/\/docs.saltproject.io\/en\/latest\/ref\/modules\/all\/salt.modules.vault.html#vault-setup\" target=\"_blank\" rel=\"noreferrer noopener\">c\u00e1c ch\u1ee9c n\u0103ng \u0111\u1ec3 t\u01b0\u01a1ng t\u00e1c v\u1edbi Vault<\/a>&nbsp;.<\/p>\n<h2 id=\"more-information\">Th\u00f4ng tin th\u00eam<\/h2>\n<p>B\u1ea1n c\u00f3 th\u1ec3 mu\u1ed1n tham kh\u1ea3o c\u00e1c ngu\u1ed3n sau \u0111\u1ec3 bi\u1ebft th\u00eam th\u00f4ng tin v\u1ec1 ch\u1ee7 \u0111\u1ec1 n\u00e0y. M\u1eb7c d\u00f9 ch\u00fang t\u00f4i cung c\u1ea5p v\u1edbi hy v\u1ecdng r\u1eb1ng ch\u00fang s\u1ebd h\u1eefu \u00edch, nh\u01b0ng xin l\u01b0u \u00fd r\u1eb1ng ch\u00fang t\u00f4i kh\u00f4ng th\u1ec3 \u0111\u1ea3m b\u1ea3o t\u00ednh ch\u00ednh x\u00e1c ho\u1eb7c t\u00ednh k\u1ecbp th\u1eddi c\u1ee7a c\u00e1c t\u00e0i li\u1ec7u \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef b\u00ean ngo\u00e0i.<\/p>\n<ul>\n<li><a href=\"https:\/\/docs.saltproject.io\/en\/latest\/topics\/tutorials\/pillar.html\" target=\"_blank\" rel=\"noreferrer noopener\">H\u01b0\u1edbng d\u1eabn x\u00e2y d\u1ef1ng Salt Pillar<\/a><\/li>\n<li><a href=\"https:\/\/docs.saltproject.io\/en\/latest\/topics\/tutorials\/states_pt3.html#using-environment-variables-in-sls-modules\" target=\"_blank\" rel=\"noreferrer noopener\">S\u1eed d\u1ee5ng Bi\u1ebfn M\u00f4i tr\u01b0\u1eddng trong M\u00f4-\u0111un SLS<\/a><\/li>\n<li><a href=\"https:\/\/docs.saltproject.io\/en\/latest\/ref\/renderers\/all\/salt.renderers.gpg.html\" target=\"_blank\" rel=\"noreferrer noopener\">M\u00e1y k\u1ebft xu\u1ea5t mu\u1ed1i GPG<\/a><\/li>\n<li><a href=\"https:\/\/docs.saltproject.io\/en\/latest\/topics\/sdb\/\" target=\"_blank\" rel=\"noreferrer noopener\">T\u00e0i li\u1ec7u Salt SDB<\/a><\/li>\n<li><a href=\"https:\/\/docs.saltproject.io\/en\/latest\/ref\/sdb\/all\/index.html\" target=\"_blank\" rel=\"noreferrer noopener\">M\u00f4-\u0111un SDB mu\u1ed1i<\/a><\/li>\n<\/ul>\n<p>Ngu\u1ed3n: https:\/\/www.linode.com\/docs\/guides\/secrets-management-with-salt\/<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Salt l\u00e0 m\u1ed9t c\u00f4ng c\u1ee5 qu\u1ea3n l\u00fd c\u1ea5u h\u00ecnh m\u1ea1nh m\u1ebd gi\u00fap b\u1ea1n qu\u1ea3n l\u00fd vi\u1ec7c tri\u1ec3n khai m\u00e1y ch\u1ee7 c\u1ee7a m\u00ecnh b\u1eb1ng c\u00e1c t\u1ec7p&nbsp;tr\u1ea1ng th\u00e1i&nbsp;c\u1ea5u h\u00ecnh . C\u00e1c t\u1ec7p n\u00e0y d\u1ec5 d\u00e0ng \u0111\u01b0\u1ee3c chia s\u1ebb v\u1edbi nh\u1eefng ng\u01b0\u1eddi kh\u00e1c trong nh\u00f3m c\u1ee7a b\u1ea1n v\u00e0 c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c ki\u1ec3m tra trong c\u00e1c h\u1ec7 th\u1ed1ng ki\u1ec3m<\/p>\n","protected":false},"author":1,"featured_media":36043,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[124],"tags":[],"class_list":["post-34988","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-salt"],"_links":{"self":[{"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/posts\/34988","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/comments?post=34988"}],"version-history":[{"count":0,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/posts\/34988\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/media\/36043"}],"wp:attachment":[{"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/media?parent=34988"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/categories?post=34988"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/tags?post=34988"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}