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
}
📌 여담
📚 참고