Как создать и вставить определение открытого ключа ssh в шаблон cloudfromation? - PullRequest
0 голосов
/ 05 ноября 2019

Я сгенерировал ключ ssh через веб-консоль amazon. Но как использовать его для создания конечной точки разработчика клея?

Рассмотрим следующий фрагмент кода:

    IAMRole:
      Type: "AWS::IAM::Role"
      DeletionPolicy: "Delete"
      Properties:
        AssumeRolePolicyDocument:
          Version: "2012-10-17"
          Statement:
            -
              Effect: "Allow"
              Principal:
                Service: "glue.amazonaws.com"
              Action: "sts:AssumeRole"
        ManagedPolicyArns:
          - "arn:aws:iam::aws:policy/AmazonS3FullAccess"
          - "arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole"
        MaxSessionDuration: 3600
        Path: "/role/"
        # PermissionsBoundary: String
        # Policies: Json
        RoleName: "GlueDevEndpoint"

    GlueDevEndpoint:
      Type: AWS::Glue::DevEndpoint
      DeletionPolicy: "Delete"
      Properties:
        EndpointName: MyEndpointName
        GlueVersion: "1.0"
        NumberOfNodes: 2
        PublicKey: >
          ---- BEGIN SSH2 PUBLIC KEY ----
          Comment: "imported-openssh-key"
          AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
          BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
          CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
          DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
          EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
          ---- END SSH2 PUBLIC KEY ----
        RoleArn: !GetAtt IAMRole.Arn

Я получил ошибку:

An error occurred: GlueDevEndpoint - Invalid SSH RSA public key. ssh-keygen -t rsa -C "your_email@example.com" (Service: AWSGlue; Status Code: 400; Error Code: InvalidInputException.

Я пытался поставитьсодержимое из:

  1. pem файла, загруженного из консоли aws.
  2. извлечение частей открытого / закрытого ключа с помощью замазки и использование их
  3. извлечение открытого ключа с помощью команд: openssl rsa -in my-key.pem -pubout> my-key.pubrsa
  4. извлечь открытый ключ с помощью команд: ssh-keygen -y -f my-key.pem> my-key2.pubrsa

Размещение содержимого всех этих файлов приводит к одной и той же ошибке. Я думаю, что открытый ключ должен быть сгенерирован так, чтобы иметь заголовок, подобный -----BEGIN RSA PUBLIC KEY-----, но все подходы, предложенные ранее, дают мне открытые ключи с различными заголовками: -----BEGIN RSA PRIVATE KEY-----, ---- BEGIN SSH2 PUBLIC KEY ----, -----BEGIN PUBLIC KEY-----

Есть идеи?

1 Ответ

0 голосов
/ 05 ноября 2019

Ответ заключается в том, чтобы использовать ключ в fomat, например:

ssh-rsa AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA user@email.com

Не забудьте , чтобы включить ваш адрес электронной почты в конце! Без этого амазонка потерпит неудачу с ошибкой.

GlueDevEndpoint:
  Type: AWS::Glue::DevEndpoint
  DeletionPolicy: "Delete"
  Properties:
    EndpointName: MyEndpointName
    GlueVersion: "1.0"
    NumberOfNodes: 2
    PublicKey: "ssh-rsa AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA user@email.com"
    RoleArn: !GetAtt IAMRole.Arn
...