Hashicorp Vault PKI 중간 요청에 개인 키가 누락되었습니다.

Hashicorp Vault PKI 중간 요청에 개인 키가 누락되었습니다.

일부 PKI 구조를 설정하려고 시도하지만 저장소에서 중간 CSR을 요청하면 개인 키가 다시 전송되지 않습니다. 둘 다테라폼API를 통해서도 구현하려고 하지 않습니다.

나는 시도했다:

  1. APIhttps://www.vaultproject.io/api/secret/pki/index.html#sample-payload-2

    CSR만 얻으세요.

    bash
    curl \
        --header "X-Vault-Token: s.123456789abcdef" \
        --request POST \
        --data @example.json \
        http://vault.example.com:8200/v1/pki/intermediate/generate/internal
    

    그리고 다음 JSON을 수신합니다.

    {
      "request_id": "e47966f5-6783-90d6-2d46-71c54ce05749",
      "lease_id": "",
      "renewable": false,
      "lease_duration": 0,
      "data": {
        "csr": "-----BEGIN CERTIFICATE REQUEST-----\nMIICjDCCAXQCAQAwGjEYMBYGA1UEAxMPd3d3LmV4YW1wbGUuY29tMIIBIjANBgkq\nhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzDpyCY0LRTuUFMepJsWiIqUBhzyOMgxZ\nUFuBln77+nHeDEME4sSymkP+QJ9X4Baah7K3K2/v2TwZHHErw22VHEBy9saR4xZw\nkw8o9uhYGeqC9jBaqp2taQUN42IVp0w0Gmo/2uutl8ryJMXb2RfYn1RX/20bZ0ti\nCe0y/FNCW4M/DoUZYLF/8pXnVIdtZZAGJWavtpyxj4tWFSVvV6IKXYXY80iInnY6\nUQ0UZiL+dhbYEymcchEMtTT2C0ggXBIdV/zO9S/WiaQ5cPg3Tpkf4Fv5C+lTaAkQ\nKeLlnm9OcShtnZe/mw0lug7bSOuy5HClYJi/Ibz1YFZU0I7IC2VhWQIDAQABoC0w\nKwYJKoZIhvcNAQkOMR4wHDAaBgNVHREEEzARgg93d3cuZXhhbXBsZS5jb20wDQYJ\nKoZIhvcNAQELBQADggEBAFnGtTa4Yi2S/SLORWr80Q5/co7KXErCOdN0SvbcuNWO\nyYisHCLCUXM0zwqZHxRuwZY7Z8SZIeLkeyc6wuDrqUahlUXMTaU8XUISyPZsCHKV\ngNdSaDBeMx8sxBiQxbOznxHduMwLZZ2dAv6TAcbcXd4HFqhuXcqKYtxRz8la0PS/\nZsDCQoZGeqKozd3jc7a0ya8TKFPrvzkWIr1IbNT8Bg/66S5fmMsn7L80JLsRoXn6\nS6ZY/82OFnLqx2U5i9ayec7JM3I2DkERcJRKF3XnnS59tiN5G7WVPrb4/tPPFNsy\n7S2NTf9F8CsS+alg4CEka6p/r+oNGHb1GATkKVjLiek=\n-----END CERTIFICATE REQUEST-----"
      },
      "wrap_info": null,
      "warnings": null,
      "auth": null
    }
    
  2. 테라폼https://www.terraform.io/docs/providers/vault/r/pki_secret_backend_intermediate_cert_request.html

    resource "vault_pki_secret_backend_intermediate_cert_request" "pki_int_request" {
      depends_on = [ "vault_pki_secret_backend_config_ca.pki_root_config" ]
    
      backend = "${vault_mount.pki_root.path}"
    
      type = "internal"
      common_name = "example.com"
    }
    
    resource "local_file" "inter_key" {
        depends_on = [ "vault_pki_secret_backend_intermediate_cert_request.pki_int_request" ]
    
        content  = "${vault_pki_secret_backend_intermediate_cert_request.pki_int_request.private_key}"
        filename = "${path.module}/certs/int_ca.key"
    }
    

빈 파일을 얻는 곳.
분명히 나는 ​​뭔가를 놓치고 있으며 어떤 조언이라도 기뻐할 것입니다.

답변1

"중간 생성"에 대한 Vaultproject.io 예제 코드와 응답이 자체 문서와 충돌하는 것 같습니다.

"type" 매개변수에 대한 문서에 따르면 개인 키를 반환하려면 "exported"를 지정해야 하고, Vault에서 개인 키를 영원히 보호하려면 "internal"을 지정해야 합니다.

예제 API 호출은 "내부"를 지정하는 것으로 보이지만 예제 응답은 "내부"가 아닌 "내보내기"에 대해 기대하는 것과 같습니다.

관련 정보