vault : v1.10.0브로커 방식RoleID와 SecretID가 비밀을 소비해야하는 최종 사용자 시스템에 있어야 한다.AppRole을 선택하는 식별자모든 로그인( 경유 secret_id)에 필요한 자격 증명이며 항상 비밀을 유지하도록 되어 있다.
1. (Vault 관리자는) 접근정책과 AppRole을 만듭니다.
2. (Vault 관리자는) RoleID와 SecretID를 발급하고 App에 전달합니다.
3. (Vault 관리자는) 비밀정보를 만듭니다.
4. (App 은 전달받은) RoleID와 SecretID를 이용해서 로그인합니다.
5. (App은) AppRole Token으로 로그인하고 비밀정보를 가져와 사용합니다. (Token은 1분 후 만료)
📌 Vault 관리자 화면을 시작 및 간단한 테스트를 해보자!
access 선택 후 Enable new method
AppRole 선택 후 Next

approle 선택
/auth/approle 경로에 마운트
path "secret/data/mysql/webapp" {
capabilities = [ "read" ]
}
vault write auth/approle/role/admin token_policies="karim_all_policy"

vault read auth/approle/role/karim_all_policy/role-id

vault write -force auth/approle/role/karim_all_policy/secret-id

vault write auth/approle/login role_id="7f1cb676-45dd-9c39-c931-1b83ef56ea74" \ secret_id="ee5ccfdc-13c7-1e63-6e5a-1b3c12df0ff8"
curl --header "X-Vault-Token: hvs.CAESIE3Jn1mgdZS3VFq0x2o-Re49WL_UeqVwViLAVSBnKa0UGh4KHGh2cy5CSFl4Y0tkeVRBZWFnZlhSck9OdGhOTDE" \ http://vaultIp:8200/v1/kv/data/karim?version=2
{
"request_id": "a0c2c7c3-2b7f-d0c1-b33c-be0a08980c86",
"lease_id": "",
"renewable": false,
"lease_duration": 0,
"data": {
"data": {
"password": "1234567890",
"username": "karim"
},
"metadata": {
"created_time": "2022-04-28T09:07:59.823491984Z",
"custom_metadata": null,
"deletion_time": "",
"destroyed": false,
"version": 2
}
},
"wrap_info": null,
"warnings": null,
"auth": null
}
📌 여담
📚 참고