키 저장소로 보안 비밀 저장

Tradefed는 키 저장소의 개념을 포함하며, 여기서는 키 저장소 서비스에 보안 비밀을 보관하고 테스트 실행 시점에 요청하여 테스트 도중에 사용할 수 있습니다.

키 저장소 사용

키 저장소를 사용하려면 먼저 전역 구성에서 키 저장소의 소스를 정의해야 합니다.

소스가 정의되면 USE_KEYSTORE@{key}을 통해 저장된 키를 사용할 수 있습니다.

JSONFileKeyStore

Tradefed 코어의 샘플 구현은 JSON 키 저장소인 JSONFileKeyStoreClient를 사용합니다. 이 키 저장소를 사용하려면 키-값 매핑을 포함하는 JSON 키 파일을 정의해야 합니다.

예를 들어 /path/to/keystore.json 파일을 다음과 같이 정의할 수 있습니다.

{
  "test_account": "foo@gmail.com",
  "test_account_pwd": "helloworld",
  "wifi_lab_ssid": "Google_private_AP",
  "wifi_lab_pwd": "secret123",
}

그런 다음에는 아래의 행을 TF 전역 구성 파일에 추가합니다.

<key_store class="com.android.tradefed.util.keystore.JSONFileKeyStoreFactory">
<option name="json-key-store-file" value="/path/to/keystore.json" />
</key_store>

이제 관련 테스트를 실행할 때 값을 USE_KEYSTORE@test_account로 전달하여 TF에서 키 저장소를 쿼리하고 이 값을 테스트의 일부로 사용합니다.

호스트 기반 키 저장소 파일

호스트 기반 키-값 쌍을 정의하기 위해 /path/to/keystore_ssid.json 파일을 다음과 같이 정의할 수 있습니다.

{
  "host_a.*\\.corp\\.com": {
    "wifi_lab_ssid": "ssid_a",
    "wifi_lab_pwd": "secret_a"
  },
  "host_b.*\\.corp\\.com": {
    "wifi_lab_ssid": "ssid_b",
    "wifi_lab_pwd": "secret_b"
  }
}

파일의 항목 키는 호스트 이름의 정규 표현식(정규식) 패턴이며 값은 호스트 이름이 일치하는 모든 호스트의 키-값 쌍 집합입니다.

그런 다음 호스트 기반 키 저장소 파일을 포함하도록 TF 전역 구성 파일을 업데이트합니다.

<key_store class="com.android.tradefed.util.keystore.JSONFileKeyStoreFactory">
<option name="json-key-store-file" value="/path/to/keystore.json" />
<option name="host-based-key-store-file" value="/path/to/keystore-ssid.json" />
</key_store>

호스트 기반 키 저장소 파일에 정의된 키의 값은 json-key-store-file로 지정된 키 저장소 파일에 정의된 값을 재정의합니다.

키 저장소에 호스트 기반 키 저장소 파일이 여러 개 있는 경우 순서가 중요합니다. 키 값이 여러 파일에 정의된 경우 마지막 파일의 값이 나머지 값을 재정의합니다.