InfoGrab DocsInfoGrab Docs

Teleport로 GitHub의 Git 명령어 프록시

요약

Teleport는 Git 명령어를 프록시하고 단기 SSH 인증서를 사용하여 GitHub 조직을 인증할 수 있습니다. GitHub는 인증을 위해 SSH 인증 기관(CA) 목록을 구성할 수 있도록 조직을 지원합니다. Teleport 사용자는 자신의 Git 리포지터리가 Teleport를 통해 프록시되도록 구성할 수 있습니다.

Teleport는 Git 명령어를 프록시하고 단기 SSH 인증서를 사용하여 GitHub 조직을 인증할 수 있습니다.

이 가이드에서 다음을 수행합니다:

  • GitHub OAuth 애플리케이션 생성.
  • GitHub 조직에 대한 SSH 인증 기관 설정.
  • GitHub 통합을 위한 Teleport 리소스 생성.
  • Teleport를 통한 Git 명령어 실행.

작동 방식#

GitHub는 인증을 위해 SSH 인증 기관(CA) 목록을 구성할 수 있도록 조직을 지원합니다. 이 기능을 사용하면 Teleport CA와 같이 승인된 CA가 서명한 단기 SSH 인증서를 사용하여 조직의 리포지터리에 접근할 수 있습니다. 선택적으로 조직은 이러한 서명된 SSH 인증서를 접근에 필수로 요구함으로써 더 강력한 보안을 적용할 수 있으며, 이 경우 개인 SSH 키와 액세스 토큰의 사용이 사실상 비활성화됩니다.

Teleport 사용자는 자신의 Git 리포지터리가 Teleport를 통해 프록시되도록 구성할 수 있습니다. 설정 후, Git 명령어는 자동으로 Teleport를 통해 라우팅되며, Teleport는 GitHub와의 인증을 위해 자체 CA가 서명한 단기 SSH 인증서를 사용하여 사용자의 GitHub 아이덴티티를 임퍼소네이션합니다. Teleport를 통해 프록시된 각 Git 명령어는 Teleport의 감사 이벤트에도 기록됩니다.

사용자의 GitHub 아이덴티티를 조회하기 위해 tsh는 브라우저 창을 열어 사용자가 GitHub 자격 증명으로 로그인하도록 하여 GitHub OAuth 플로를 시작합니다.

GitHub SSH certificate authorities

Teleport는 SSH를 통해 Git 명령어를 프록시하지만, 사용자는 계속해서 브라우저를 통해 GitHub에 접근해야 한다는 점에 유의하세요.

사전 요구사항#

  • 실행 중인 Teleport Enterprise (v17.2 or higher) 클러스터. Teleport를 시작하려면 무료 체험판에 가입하거나 데모 환경을 구성하세요.

  • tctl and tsh clients.

    Installing `tctl` and `tsh` clients
    1. Teleport 클러스터의 버전을 확인합니다. tctl and tsh clients는 Teleport 클러스터 버전보다 최대 한 개의 메이저 버전까지만 뒤처질 수 있습니다. Proxy Service의 /v1/webapi/find로 GET 요청을 보내고 JSON 쿼리 도구를 사용하여 클러스터 버전을 확인합니다. teleport.example.com:443를 Teleport Proxy Service의 웹 주소로 바꿉니다:

      $ TELEPORT_DOMAIN=teleport.example.com:443
      $ TELEPORT_VERSION="$(curl -s https://$TELEPORT_DOMAIN/v1/webapi/find | jq -r '.server_version')"
      
    2. 사용 중인 플랫폼에 대한 지침에 따라 tctl and tsh clients를 설치합니다:

Mac

     `tctl` and `tsh` clients가 포함된, 서명된 Teleport macOS .pkg 설치 프로그램을 다운로드합니다:
 
     ```code
     $ curl -O https://cdn.teleport.dev/teleport-${TELEPORT_VERSION?}.pkg
     ```

     Finder에서 `pkg` 파일을 더블 클릭하여 설치를 시작합니다.
 
     
Warning
       Homebrew를 사용하여 Teleport를 설치하는 것은 지원되지 않습니다. Homebrew의
       Teleport 패키지는 Teleport에서 유지 관리하지 않으므로 신뢰성이나 보안을
       보장할 수 없습니다.
     

Windows - Powershell

     ```code
     $ curl.exe -O https://cdn.teleport.dev/teleport-v${TELEPORT_VERSION?}-windows-amd64-bin.zip
     # Unzip the archive and move the `tctl` and `tsh` clients to your %PATH%
     # NOTE: Do not place the `tctl` and `tsh` clients in the System32 directory, as this can cause issues when using WinSCP.
     # Use %SystemRoot% (C:\Windows) or %USERPROFILE% (C:\Users\<username>) instead.
     ```
 
   

 
   

Linux

     Linux 설치판의 모든 Teleport 바이너리에는 `tctl` and `tsh` clients가 포함되어 있습니다.  RPM/DEB
     패키지 및 i386/ARM/ARM64용 다운로드를 포함한 더 많은 옵션은
     [설치 페이지](../installation/installation.mdx)를 참조하세요.
 
     ```code
     $ curl -O https://cdn.teleport.dev/teleport-v${TELEPORT_VERSION?}-linux-amd64-bin.tar.gz
     $ tar -xzf teleport-v${TELEPORT_VERSION?}-linux-amd64-bin.tar.gz
     $ cd teleport
     $ sudo ./install
     # Teleport binaries have been copied to /usr/local/bin
     ```
   

 
  • GitHub Enterprise Cloud에 대한 접근 권한, 그리고 GitHub의 SSH 인증 기관을 수정하고 OAuth 애플리케이션을 구성할 수 있는 권한.
    GitHub Enterprise compatibility

GitHub 통합에는 GitHub Enterprise 플랜이 필요하며, 현재 GitHub Enterprise Cloud에 대해서만 지원됩니다. **GitHub Enterprise Server(자체 호스팅)**에 대한 지원은 현재 릴리즈에서는 제공되지 않습니다.

Teleport cluster에 연결할 수 있는지 확인하려면 tsh login으로 로그인한 다음, 현재 자격 증명으로 tctl 명령을 실행할 수 있는지 확인합니다.

예를 들어, teleport.example.com에 cluster 내 Teleport Proxy Service의 도메인 이름을, email@example.com에 Teleport 사용자 이름을 지정하여 다음 명령을 실행합니다:

$ tsh login --proxy=teleport.example.com --user=email@example.com
$ tctl status
# Cluster  (=teleport.url=)
# Version  (=teleport.version=)
# CA pin   (=presets.ca_pin=)

cluster에 연결하여 tctl status 명령을 실행할 수 있다면, 현재 자격 증명을 사용하여 워크스테이션에서 이후의 tctl 명령을 실행할 수 있습니다. 자체 Teleport cluster를 호스팅하는 경우, 전체 권한을 얻기 위해 Teleport Auth Service를 호스팅하는 컴퓨터에서 tctl 명령을 실행할 수도 있습니다.

Step 1/4. GitHub OAuth 애플리케이션 구성#

GitHub 통합에는 사용자의 GitHub 아이덴티티를 얻기 위한 GitHub OAuth 애플리케이션이 필요합니다. Teleport 사용자가 GitHub SSO를 사용하여 Teleport에 로그인하는 경우 이 단계를 건너뛸 수 있습니다.

조직 설정의 "Developer Settings"에서 "OAuth Apps"로 이동합니다. "New OAuth App"을 클릭합니다.

세부 정보를 입력합니다. "Authentication callback URL"에는 다음을 사용하세요. teleport-proxy-address를 Teleport Proxy Service의 호스트 및 HTTPS 포트로 바꿉니다:

https://teleport-proxy-address/v1/webapi/github/

OAuth 애플리케이션이 생성되면 클라이언트 시크릿을 생성하고 다음 단계를 위해 클라이언트 ID와 시크릿을 기억해 두세요:

A GitHub Oauth App, highlighting Client ID and secret

Step 2/4. GitHub 통합 생성 및 CA 내보내기#

이제 Github 통합을 나타내는 yaml 파일을 생성합니다. my-github-org를 조직 이름으로 바꾸고, oauth-app-client-idoauth-app-client-secret를 이전 단계의 값으로 바꾸세요.

# github_integration.yaml
kind: integration
sub_kind: github
version: v1
metadata:
  name: github-my-github-org
spec:
  github:
    organization: my-github-org
  credentials:
    id_secret:
      id: oauth-app-client-id
      secret: oauth-app-client-secret

tctl로 리소스를 생성하려면 다음을 실행하세요:

$ tctl create github_integration.yaml

통합 리소스가 생성되면, GitHub에 사용할 CA를 내보냅니다:

$ tctl auth export --type github --integration github-my-github-org

이제 GitHub 조직의 "Authentication Security" 페이지로 이동합니다. "SSH certificate authorities" 섹션에서 "New CA"를 클릭하고, 위의 tctl auth export 명령어에서 내보낸 CA를 복사하여 붙여넣습니다.

GitHub SSH certificate authorities

Step 3/4. 접근 구성#

사용자 접근은 git_server 리소스를 통해 부여됩니다. git_server는 이전 단계에서 생성한 통합을 참조합니다:

# git_server.yaml
kind: git_server
sub_kind: github
version: v2
spec:
  github:
    integration: github-my-github-org
    organization: my-github-org

tctl로 리소스를 생성하려면 다음을 실행하세요:

$ tctl create git_server.yaml

사용자 역할에는 GitHub 조직에 대한 접근을 허용하기 위해 github_permissions가 구성되어 있어야 합니다. 예를 들면:

# role_with_github_permissions.yaml
kind: role
metadata:
  name: github-access
spec:
  allow:
    github_permissions:
    - orgs:
      - my-github-org
version: v7

인증 공급자에 맞는 적절한 명령을 실행하여 github-access 역할을 your Teleport user에게 할당하십시오:

Local User

  1. 로컬 사용자의 역할을 쉼표로 구분된 목록으로 가져옵니다:

    $ ROLES=$(tsh status -f json | jq -r '.active.roles | join(",")')
    
  2. 로컬 사용자를 편집하여 새 역할을 추가합니다:

    $ tctl users update $(tsh status -f json | jq -r '.active.username') \
      --set-roles "${ROLES?},github-access"
    
  3. Teleport 클러스터에서 로그아웃한 다음 다시 로그인하여 새 역할을 적용합니다.

GitHub

  1. 텍스트 편집기에서 github 인증 커넥터를 엽니다:

    $ tctl edit github/github
    
  2. github 커넥터를 편집하여 teams_to_roles 섹션에 github-access을 추가합니다.

    이 역할에 매핑해야 할 팀은 조직의 역할 기반 액세스 제어(RBAC)를 어떻게 설계했는지에 따라 달라집니다. 다만, 해당 팀은 여러분의 사용자 계정을 포함해야 하며 조직 내에서 가능한 한 가장 작은 팀이어야 합니다.

    다음은 예시입니다:

      teams_to_roles:
        - organization: octocats
          team: admins
          roles:
            - access
    +       - github-access
    
  3. 편집기에서 파일을 저장하고 닫아 변경 사항을 적용합니다.

  4. Teleport 클러스터에서 로그아웃한 다음 다시 로그인하여 새 역할을 적용합니다.

SAML

  1. saml 구성 리소스를 가져옵니다:

    $ tctl get --with-secrets saml/mysaml > saml.yaml
    

    --with-secrets 플래그는 spec.signing_key_pair.private_key 값을 saml.yaml 파일에 추가한다는 점에 유의하십시오. 이 키에는 민감한 값이 포함되어 있으므로, 리소스를 업데이트한 직후 saml.yaml 파일을 삭제해야 합니다.

  2. saml.yaml을 편집하여 attributes_to_roles 섹션에 github-access을 추가합니다.

    이 역할에 매핑해야 할 속성은 조직의 역할 기반 액세스 제어(RBAC)를 어떻게 설계했는지에 따라 달라집니다. 다만, 해당 그룹은 여러분의 사용자 계정을 포함해야 하며 조직 내에서 가능한 한 가장 작은 그룹이어야 합니다.

    다음은 예시입니다:

      attributes_to_roles:
        - name: "groups"
          value: "my-group"
          roles:
            - access
    +       - github-access
    
  3. 변경 사항을 적용합니다:

    $ tctl create -f saml.yaml
    
  4. Teleport 클러스터에서 로그아웃한 다음 다시 로그인하여 새 역할을 적용합니다.

OIDC

  1. oidc 구성 리소스를 가져옵니다:

    $ tctl get oidc/myoidc --with-secrets > oidc.yaml
    

    --with-secrets 플래그는 spec.signing_key_pair.private_key 값을 oidc.yaml 파일에 추가한다는 점에 유의하십시오. 이 키에는 민감한 값이 포함되어 있으므로, 리소스를 업데이트한 직후 oidc.yaml 파일을 삭제해야 합니다.

  2. oidc.yaml을 편집하여 claims_to_roles 섹션에 github-access을 추가합니다.

    이 역할에 매핑해야 할 클레임은 조직의 역할 기반 액세스 제어(RBAC)를 어떻게 설계했는지에 따라 달라집니다. 다만, 해당 그룹은 여러분의 사용자 계정을 포함해야 하며 조직 내에서 가능한 한 가장 작은 그룹이어야 합니다.

    다음은 예시입니다:

      claims_to_roles:
        - name: "groups"
          value: "my-group"
          roles:
            - access
    +       - github-access
    
  3. 변경 사항을 적용합니다:

    $ tctl create -f oidc.yaml
    
  4. Teleport 클러스터에서 로그아웃한 다음 다시 로그인하여 새 역할을 적용합니다.

Step 4/4. 연결#

Note

이 섹션의 내용은 원문 문서를 참조하세요. (tsh-git.mdx)

추가 참고 자료#

Teleport로 GitHub의 Git 명령어 프록시

Teleport v18.9
원문 보기
요약

Teleport는 Git 명령어를 프록시하고 단기 SSH 인증서를 사용하여 GitHub 조직을 인증할 수 있습니다. GitHub는 인증을 위해 SSH 인증 기관(CA) 목록을 구성할 수 있도록 조직을 지원합니다. Teleport 사용자는 자신의 Git 리포지터리가 Teleport를 통해 프록시되도록 구성할 수 있습니다.

Teleport는 Git 명령어를 프록시하고 단기 SSH 인증서를 사용하여 GitHub 조직을 인증할 수 있습니다.

이 가이드에서 다음을 수행합니다:

  • GitHub OAuth 애플리케이션 생성.
  • GitHub 조직에 대한 SSH 인증 기관 설정.
  • GitHub 통합을 위한 Teleport 리소스 생성.
  • Teleport를 통한 Git 명령어 실행.

작동 방식#

GitHub는 인증을 위해 SSH 인증 기관(CA) 목록을 구성할 수 있도록 조직을 지원합니다. 이 기능을 사용하면 Teleport CA와 같이 승인된 CA가 서명한 단기 SSH 인증서를 사용하여 조직의 리포지터리에 접근할 수 있습니다. 선택적으로 조직은 이러한 서명된 SSH 인증서를 접근에 필수로 요구함으로써 더 강력한 보안을 적용할 수 있으며, 이 경우 개인 SSH 키와 액세스 토큰의 사용이 사실상 비활성화됩니다.

Teleport 사용자는 자신의 Git 리포지터리가 Teleport를 통해 프록시되도록 구성할 수 있습니다. 설정 후, Git 명령어는 자동으로 Teleport를 통해 라우팅되며, Teleport는 GitHub와의 인증을 위해 자체 CA가 서명한 단기 SSH 인증서를 사용하여 사용자의 GitHub 아이덴티티를 임퍼소네이션합니다. Teleport를 통해 프록시된 각 Git 명령어는 Teleport의 감사 이벤트에도 기록됩니다.

사용자의 GitHub 아이덴티티를 조회하기 위해 tsh는 브라우저 창을 열어 사용자가 GitHub 자격 증명으로 로그인하도록 하여 GitHub OAuth 플로를 시작합니다.

GitHub SSH certificate authorities

Teleport는 SSH를 통해 Git 명령어를 프록시하지만, 사용자는 계속해서 브라우저를 통해 GitHub에 접근해야 한다는 점에 유의하세요.

사전 요구사항#

  • 실행 중인 Teleport Enterprise (v17.2 or higher) 클러스터. Teleport를 시작하려면 무료 체험판에 가입하거나 데모 환경을 구성하세요.

  • tctl and tsh clients.

    Installing `tctl` and `tsh` clients
    1. Teleport 클러스터의 버전을 확인합니다. tctl and tsh clients는 Teleport 클러스터 버전보다 최대 한 개의 메이저 버전까지만 뒤처질 수 있습니다. Proxy Service의 /v1/webapi/find로 GET 요청을 보내고 JSON 쿼리 도구를 사용하여 클러스터 버전을 확인합니다. teleport.example.com:443를 Teleport Proxy Service의 웹 주소로 바꿉니다:

      $ TELEPORT_DOMAIN=teleport.example.com:443
      $ TELEPORT_VERSION="$(curl -s https://$TELEPORT_DOMAIN/v1/webapi/find | jq -r '.server_version')"
      
    2. 사용 중인 플랫폼에 대한 지침에 따라 tctl and tsh clients를 설치합니다:

Mac

     `tctl` and `tsh` clients가 포함된, 서명된 Teleport macOS .pkg 설치 프로그램을 다운로드합니다:
 
     ```code
     $ curl -O https://cdn.teleport.dev/teleport-${TELEPORT_VERSION?}.pkg
     ```

     Finder에서 `pkg` 파일을 더블 클릭하여 설치를 시작합니다.
 
     
Warning
       Homebrew를 사용하여 Teleport를 설치하는 것은 지원되지 않습니다. Homebrew의
       Teleport 패키지는 Teleport에서 유지 관리하지 않으므로 신뢰성이나 보안을
       보장할 수 없습니다.
     

Windows - Powershell

     ```code
     $ curl.exe -O https://cdn.teleport.dev/teleport-v${TELEPORT_VERSION?}-windows-amd64-bin.zip
     # Unzip the archive and move the `tctl` and `tsh` clients to your %PATH%
     # NOTE: Do not place the `tctl` and `tsh` clients in the System32 directory, as this can cause issues when using WinSCP.
     # Use %SystemRoot% (C:\Windows) or %USERPROFILE% (C:\Users\<username>) instead.
     ```
 
   

 
   

Linux

     Linux 설치판의 모든 Teleport 바이너리에는 `tctl` and `tsh` clients가 포함되어 있습니다.  RPM/DEB
     패키지 및 i386/ARM/ARM64용 다운로드를 포함한 더 많은 옵션은
     [설치 페이지](../installation/installation.mdx)를 참조하세요.
 
     ```code
     $ curl -O https://cdn.teleport.dev/teleport-v${TELEPORT_VERSION?}-linux-amd64-bin.tar.gz
     $ tar -xzf teleport-v${TELEPORT_VERSION?}-linux-amd64-bin.tar.gz
     $ cd teleport
     $ sudo ./install
     # Teleport binaries have been copied to /usr/local/bin
     ```
   

 
  • GitHub Enterprise Cloud에 대한 접근 권한, 그리고 GitHub의 SSH 인증 기관을 수정하고 OAuth 애플리케이션을 구성할 수 있는 권한.
    GitHub Enterprise compatibility

GitHub 통합에는 GitHub Enterprise 플랜이 필요하며, 현재 GitHub Enterprise Cloud에 대해서만 지원됩니다. **GitHub Enterprise Server(자체 호스팅)**에 대한 지원은 현재 릴리즈에서는 제공되지 않습니다.

Teleport cluster에 연결할 수 있는지 확인하려면 tsh login으로 로그인한 다음, 현재 자격 증명으로 tctl 명령을 실행할 수 있는지 확인합니다.

예를 들어, teleport.example.com에 cluster 내 Teleport Proxy Service의 도메인 이름을, email@example.com에 Teleport 사용자 이름을 지정하여 다음 명령을 실행합니다:

$ tsh login --proxy=teleport.example.com --user=email@example.com
$ tctl status
# Cluster  (=teleport.url=)
# Version  (=teleport.version=)
# CA pin   (=presets.ca_pin=)

cluster에 연결하여 tctl status 명령을 실행할 수 있다면, 현재 자격 증명을 사용하여 워크스테이션에서 이후의 tctl 명령을 실행할 수 있습니다. 자체 Teleport cluster를 호스팅하는 경우, 전체 권한을 얻기 위해 Teleport Auth Service를 호스팅하는 컴퓨터에서 tctl 명령을 실행할 수도 있습니다.

Step 1/4. GitHub OAuth 애플리케이션 구성#

GitHub 통합에는 사용자의 GitHub 아이덴티티를 얻기 위한 GitHub OAuth 애플리케이션이 필요합니다. Teleport 사용자가 GitHub SSO를 사용하여 Teleport에 로그인하는 경우 이 단계를 건너뛸 수 있습니다.

조직 설정의 "Developer Settings"에서 "OAuth Apps"로 이동합니다. "New OAuth App"을 클릭합니다.

세부 정보를 입력합니다. "Authentication callback URL"에는 다음을 사용하세요. teleport-proxy-address를 Teleport Proxy Service의 호스트 및 HTTPS 포트로 바꿉니다:

https://teleport-proxy-address/v1/webapi/github/

OAuth 애플리케이션이 생성되면 클라이언트 시크릿을 생성하고 다음 단계를 위해 클라이언트 ID와 시크릿을 기억해 두세요:

A GitHub Oauth App, highlighting Client ID and secret

Step 2/4. GitHub 통합 생성 및 CA 내보내기#

이제 Github 통합을 나타내는 yaml 파일을 생성합니다. my-github-org를 조직 이름으로 바꾸고, oauth-app-client-idoauth-app-client-secret를 이전 단계의 값으로 바꾸세요.

# github_integration.yaml
kind: integration
sub_kind: github
version: v1
metadata:
  name: github-my-github-org
spec:
  github:
    organization: my-github-org
  credentials:
    id_secret:
      id: oauth-app-client-id
      secret: oauth-app-client-secret

tctl로 리소스를 생성하려면 다음을 실행하세요:

$ tctl create github_integration.yaml

통합 리소스가 생성되면, GitHub에 사용할 CA를 내보냅니다:

$ tctl auth export --type github --integration github-my-github-org

이제 GitHub 조직의 "Authentication Security" 페이지로 이동합니다. "SSH certificate authorities" 섹션에서 "New CA"를 클릭하고, 위의 tctl auth export 명령어에서 내보낸 CA를 복사하여 붙여넣습니다.

GitHub SSH certificate authorities

Step 3/4. 접근 구성#

사용자 접근은 git_server 리소스를 통해 부여됩니다. git_server는 이전 단계에서 생성한 통합을 참조합니다:

# git_server.yaml
kind: git_server
sub_kind: github
version: v2
spec:
  github:
    integration: github-my-github-org
    organization: my-github-org

tctl로 리소스를 생성하려면 다음을 실행하세요:

$ tctl create git_server.yaml

사용자 역할에는 GitHub 조직에 대한 접근을 허용하기 위해 github_permissions가 구성되어 있어야 합니다. 예를 들면:

# role_with_github_permissions.yaml
kind: role
metadata:
  name: github-access
spec:
  allow:
    github_permissions:
    - orgs:
      - my-github-org
version: v7

인증 공급자에 맞는 적절한 명령을 실행하여 github-access 역할을 your Teleport user에게 할당하십시오:

Local User

  1. 로컬 사용자의 역할을 쉼표로 구분된 목록으로 가져옵니다:

    $ ROLES=$(tsh status -f json | jq -r '.active.roles | join(",")')
    
  2. 로컬 사용자를 편집하여 새 역할을 추가합니다:

    $ tctl users update $(tsh status -f json | jq -r '.active.username') \
      --set-roles "${ROLES?},github-access"
    
  3. Teleport 클러스터에서 로그아웃한 다음 다시 로그인하여 새 역할을 적용합니다.

GitHub

  1. 텍스트 편집기에서 github 인증 커넥터를 엽니다:

    $ tctl edit github/github
    
  2. github 커넥터를 편집하여 teams_to_roles 섹션에 github-access을 추가합니다.

    이 역할에 매핑해야 할 팀은 조직의 역할 기반 액세스 제어(RBAC)를 어떻게 설계했는지에 따라 달라집니다. 다만, 해당 팀은 여러분의 사용자 계정을 포함해야 하며 조직 내에서 가능한 한 가장 작은 팀이어야 합니다.

    다음은 예시입니다:

      teams_to_roles:
        - organization: octocats
          team: admins
          roles:
            - access
    +       - github-access
    
  3. 편집기에서 파일을 저장하고 닫아 변경 사항을 적용합니다.

  4. Teleport 클러스터에서 로그아웃한 다음 다시 로그인하여 새 역할을 적용합니다.

SAML

  1. saml 구성 리소스를 가져옵니다:

    $ tctl get --with-secrets saml/mysaml > saml.yaml
    

    --with-secrets 플래그는 spec.signing_key_pair.private_key 값을 saml.yaml 파일에 추가한다는 점에 유의하십시오. 이 키에는 민감한 값이 포함되어 있으므로, 리소스를 업데이트한 직후 saml.yaml 파일을 삭제해야 합니다.

  2. saml.yaml을 편집하여 attributes_to_roles 섹션에 github-access을 추가합니다.

    이 역할에 매핑해야 할 속성은 조직의 역할 기반 액세스 제어(RBAC)를 어떻게 설계했는지에 따라 달라집니다. 다만, 해당 그룹은 여러분의 사용자 계정을 포함해야 하며 조직 내에서 가능한 한 가장 작은 그룹이어야 합니다.

    다음은 예시입니다:

      attributes_to_roles:
        - name: "groups"
          value: "my-group"
          roles:
            - access
    +       - github-access
    
  3. 변경 사항을 적용합니다:

    $ tctl create -f saml.yaml
    
  4. Teleport 클러스터에서 로그아웃한 다음 다시 로그인하여 새 역할을 적용합니다.

OIDC

  1. oidc 구성 리소스를 가져옵니다:

    $ tctl get oidc/myoidc --with-secrets > oidc.yaml
    

    --with-secrets 플래그는 spec.signing_key_pair.private_key 값을 oidc.yaml 파일에 추가한다는 점에 유의하십시오. 이 키에는 민감한 값이 포함되어 있으므로, 리소스를 업데이트한 직후 oidc.yaml 파일을 삭제해야 합니다.

  2. oidc.yaml을 편집하여 claims_to_roles 섹션에 github-access을 추가합니다.

    이 역할에 매핑해야 할 클레임은 조직의 역할 기반 액세스 제어(RBAC)를 어떻게 설계했는지에 따라 달라집니다. 다만, 해당 그룹은 여러분의 사용자 계정을 포함해야 하며 조직 내에서 가능한 한 가장 작은 그룹이어야 합니다.

    다음은 예시입니다:

      claims_to_roles:
        - name: "groups"
          value: "my-group"
          roles:
            - access
    +       - github-access
    
  3. 변경 사항을 적용합니다:

    $ tctl create -f oidc.yaml
    
  4. Teleport 클러스터에서 로그아웃한 다음 다시 로그인하여 새 역할을 적용합니다.

Step 4/4. 연결#

Note

이 섹션의 내용은 원문 문서를 참조하세요. (tsh-git.mdx)

추가 참고 자료#