kubernetes: файл CA при развертывании через kops

Я создал кластер на aws, используя kops.

Однако я не могу найти файл, используемый центром сертификации для создания клиентских сертификатов.

Создает ли kops такую ​​вещь по умолчанию?

Если да, то каков рекомендуемый процесс создания клиентских сертификатов?

В документации kops это не очень ясно.


person pkaramol    schedule 09.01.2018    source источник


Ответы (1)


Я сделал это, как это в мимо:

  1. Download the kops-generated CA certificate and signing key from S3:
    • s3://<BUCKET_NAME>/<CLUSTER_NAME>/pki/private/ca/*.key
    • s3://<BUCKET_NAME>/<CLUSTER_NAME>/pki/issued/ca/*.crt
  2. Сгенерируйте ключ клиента: openssl genrsa -out client-key.pem 2048
  3. Сгенерируйте CSR:

    openssl req -new \
      -key client-key.pem \
      -out client-csr.pem \
      -subj "/CN=<CLIENT_CN>/O=dev"`
    
  4. Создайте клиентский сертификат:

    openssl x509 -req \
      -in client-csr.pem \
      -CA <PATH_TO_DOWNLOADED_CA_CERT> \
      -CAkey <PATH_TO_DOWNLOADED_CA_KEY> \
      -CAcreateserial \
      -out client-crt.pem \
      -days 10000
    
  5. Base64-закодируйте ключ клиента, сертификат клиента и сертификат CA и заполните эти значения в config.yml, например. это
  6. Распространите заполненный config.yml своим разработчикам.

5 и 6, очевидно, могут распространяться любыми средствами, которые вы хотите, не нужно делать config.yml для ваших разработчиков.

person Amit Kumar Gupta    schedule 09.01.2018
comment
Это очень полезно; Благодарность; Считается ли хорошей практикой сохранять общий config.yml для всех разработчиков или отдельный (каждый со своим ключом/сертификатом) для каждого? - person pkaramol; 09.01.2018
comment
Я мог бы создать отдельный config.yml со своим ключом/сертификатом для каждого разработчика. Вы можете использовать информацию об организации в сертификате для сопоставления с группами в K8s RBAC, поэтому у вас больше гибкости и простоты в управлении разрешениями. Однако, если вы не используете RBAC или какой-либо специальный режим авторизации, это немного спорный вопрос. - person Amit Kumar Gupta; 10.01.2018
comment
спасибо; Вы случайно не знаете, почему а) запись certificate-authority-data в моем ~/.kube/config и б) содержимое s3://<BUCKET_NAME>/<CLUSTER_NAME>/pki/issued/ca/*.crt отличается? разве не должно быть только одно CA ? - person pkaramol; 10.01.2018
comment
Следуя здесь: stackoverflow.com/questions/48183802/ чтобы избежать расширенного обсуждения и, возможно, это другая проблема. - person pkaramol; 10.01.2018