Vault AppRole 인증을 활성화 해보자!

Karim·2022년 4월 29일
5

vault 운영

목록 보기
3/4
post-thumbnail

1. Version

💬

  • vault : v1.10.0

2. AppRole 방식이란?

AppRole

  • AppRole 인증 방법은 볼트에서 시스템 인증을 위해 제공
  • AppRole은 신뢰할 수 있는 브로커 방식
  • 볼트와의 인증 중계 중에 RoleIDSecretID가 비밀을 소비해야하는 최종 사용자 시스템에 있어야 한다.

RoleId

  • RoleID는 다른 자격 증명이 평가되는 AppRole을 선택하는 식별자

SecretId

  • SecretID는 기본적으로 모든 로그인( 경유 secret_id)에 필요한 자격 증명이며 항상 비밀을 유지하도록 되어 있다.

💡 AppRole 동작 방식


1. (Vault 관리자는) 접근정책과 AppRole을 만듭니다.
2. (Vault 관리자는) RoleID와 SecretID를 발급하고 App에 전달합니다.
3. (Vault 관리자는) 비밀정보를 만듭니다.
4. (App 은 전달받은) RoleID와 SecretID를 이용해서 로그인합니다.
5. (App은) AppRole Token으로 로그인하고 비밀정보를 가져와 사용합니다. (Token은 1분 후 만료)

3. Vault 이전 사항

💡 vault approle 방식 사용 전 구축 사항 링크

📌 Vault 관리자 화면을 시작 및 간단한 테스트를 해보자!

4. AppRole 인증 방식 활성화

💻 appRole access 방식 추가

  1. 상단 위 access 선택 후 Enable new method
  2. AppRole 선택 후 Next
  3. 기본 path 냅두고 Enable Methode 선택
  4. 그 후 아무것도 누르지 말고 좌측 상단 approle 선택
  5. AppRole 인증 방법을 활성화하면 /auth/approle 경로에 마운트

5. 정책에 AppRole 인증 방식 연결된 역할 추가

✒️ Policies text 추가

path "secret/data/mysql/webapp" {
  capabilities = [ "read" ]
}

✒️ vault policy write

vault write auth/approle/role/admin token_policies="karim_all_policy"

6. RoleID 및 SecretID 가져오기

✒️ roleId 발급

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

✒️ secretId 생성

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

7. RoleID 및 SecretID 로 로그인

✒️ RoleID/SecretID 로 Vault에 인증

vault write auth/approle/login role_id="7f1cb676-45dd-9c39-c931-1b83ef56ea74" \ secret_id="ee5ccfdc-13c7-1e63-6e5a-1b3c12df0ff8"

8. RoleID/SecretID 발급 Token으로 비밀정보 읽기

💻 RoleID/SecretID 로 Vault에 인증

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
}

📌 여담

  • role_id/secret_id 방식이 제일 안전한거 같당 🔌

📚 참고

profile
나도 보기 위해 정리해 놓은 벨로그

0개의 댓글