InfoGrab DocsInfoGrab Docs

AWS OIDC 통합

요약

AWS OIDC 통합을 사용하면 대부분의 사용 사례에서 AWS에 Teleport 에이전트를 수동으로 배포할 필요가 없어집니다. 이 가이드는 좀 더 수동적인 접근 방식을 선호하거나 Infrastructure as Code 도구로 통합을 관리하고자 하는 사용자를 대상으로 합니다.

AWS OIDC 통합을 사용하면 대부분의 사용 사례에서 AWS에 Teleport 에이전트를 수동으로 배포할 필요가 없어집니다. 다음 기능들은 AWS OIDC 통합을 사용하여 AWS와 상호작용합니다:

이 가이드는 좀 더 수동적인 접근 방식을 선호하거나 Infrastructure as Code 도구로 통합을 관리하고자 하는 사용자를 대상으로 합니다.

이 가이드에서는 Teleport AWS OIDC 통합을 설정합니다.

이 가이드의 대안으로 Teleport Web UI를 사용할 수도 있습니다. 왼쪽 창에서 Add New -> Integration을 클릭하세요.

작동 방식#

Teleport는 AWS 계정과의 신뢰 관계를 구축하고 AWS 리소스에 접근하기 위해 구성된 IAM 역할을 수임(assume)할 수 있도록 OpenID Connect ID 공급자로 추가됩니다.

이를 위해 openid-configuration과 공개 키가 클러스터에서 다음과 같이 자동으로 노출됩니다:

$ curl https://teleport.example.com/.well-known/openid-configuration

이 통합에는 별도의 구성이나 실행할 서비스가 필요하지 않습니다.

초기에는 IAM 역할에 아무런 정책도 추가되지 않지만, 사용자가 특정 기능을 처음 사용하려고 할 때 정책을 추가하도록 안내됩니다. 예를 들어 External Audit Storage를 설정할 때, 이 IAM 역할에 필요한 정책을 추가하라는 안내를 받게 됩니다.

이 통합으로 생성된 AWS 리소스에는 태그가 지정되므로 AWS Resource Groups / Tag Editor를 사용하여 검색하고 내보낼 수 있습니다. 다음 태그가 적용됩니다:

teleport.dev/cluster      cluster-name
teleport.dev/origin       integration_awsoidc
teleport.dev/integration  my-integration

사전 요구 사항#

  • 실행 중인 Teleport 클러스터.
  • IAM ID 공급자 및 역할을 생성할 수 있는 권한을 가진 AWS 계정

1/4단계. RBAC 구성#

통합을 구성하려면 Teleport 역할 중 하나에 다음 허용 규칙이 필요합니다. 이 규칙은 프리셋 editor 역할에 기본적으로 포함되어 있습니다. 또는 integration-manager.yaml이라는 파일에 다음 권한을 가진 역할을 정의할 수도 있습니다:

kind: role
version: v7
metadata:
  name: integration-manager
spec:
  allow:
    rules:
    - resources:
      - integration
      verbs:
      - create
      - update
      - list
      - read
      - delete
      - use

다음 명령을 실행하여 역할을 생성합니다:

$ tctl create -f integration-manager.yaml

2/4단계. AWS에서 ID 공급자 구성#

AWS IAM Identity Provider로 이동하여 ID 공급자를 구성합니다:

  • Provider type: OpenID Connect
  • Provider URL:
https://teleport.example.com
  • Audience: discover.teleport

향후 리소스를 추적하는 데 도움이 되도록 다음 태그도 추가하는 것이 좋습니다:

teleport.dev/cluster      cluster-name
teleport.dev/origin       integration_awsoidc
teleport.dev/integration  my-integration

3/4단계. IAM 역할 생성#

통합 iam-role에 필요한 정책을 할당하려면 IAM 역할을 생성해야 합니다.

이 IAM 역할은 정책 없이 생성되며, 정책은 사용하려는 기능에 따라 추가됩니다. 예를 들어 Access Graph AWS 동기화를 설정할 때 추가됩니다. 하지만 ID 공급자가 이 역할을 수임할 수 있도록 구성해야 합니다. 이를 위해 다음과 같은 신뢰 관계(Trust Relationship)를 추가하세요:

{
	"Version": "2012-10-17",
	"Statement": [
		{
			"Effect": "Allow",
			"Principal": {
				"Federated": "arn:aws:iam::aws-account-id:oidc-provider/teleport.example.com"
			},
			"Action": "sts:AssumeRoleWithWebIdentity",
			"Condition": {
				"StringEquals": {
					"teleport.example.com:aud": "discover.teleport"
				}
			}
		}
	]
}

또한 Teleport가 새로운 기능을 온보딩할 때 IAM 역할을 변경할 수 있도록 다음 태그도 추가해야 합니다:

teleport.dev/cluster      cluster-name
teleport.dev/origin       integration_awsoidc
teleport.dev/integration  my-integration

4/4단계. 통합 리소스 생성#

다음 내용으로 awsoidc-integration.yaml이라는 파일을 생성합니다:

kind: integration
sub_kind: aws-oidc
version: v1
metadata:
  name: my-integration
spec:
  aws_oidc:
    role_arn: "arn:aws:iam::aws-account-id:role/iam-role"

리소스를 생성합니다:

$ tctl create -f awsoidc-integration.yaml
integration 'my-integration' has been created

설정이 완료되면 이제 Teleport Web UI에서 "Enroll New Resource" 플로우나 기타 통합 의존 기능을 사용할 수 있습니다.

다음 단계#

이제 통합이 준비되었으니 다음 기능을 사용할 수 있습니다:

AWS OIDC 통합

Teleport v18.9
원문 보기
요약

AWS OIDC 통합을 사용하면 대부분의 사용 사례에서 AWS에 Teleport 에이전트를 수동으로 배포할 필요가 없어집니다. 이 가이드는 좀 더 수동적인 접근 방식을 선호하거나 Infrastructure as Code 도구로 통합을 관리하고자 하는 사용자를 대상으로 합니다.

AWS OIDC 통합을 사용하면 대부분의 사용 사례에서 AWS에 Teleport 에이전트를 수동으로 배포할 필요가 없어집니다. 다음 기능들은 AWS OIDC 통합을 사용하여 AWS와 상호작용합니다:

이 가이드는 좀 더 수동적인 접근 방식을 선호하거나 Infrastructure as Code 도구로 통합을 관리하고자 하는 사용자를 대상으로 합니다.

이 가이드에서는 Teleport AWS OIDC 통합을 설정합니다.

이 가이드의 대안으로 Teleport Web UI를 사용할 수도 있습니다. 왼쪽 창에서 Add New -> Integration을 클릭하세요.

작동 방식#

Teleport는 AWS 계정과의 신뢰 관계를 구축하고 AWS 리소스에 접근하기 위해 구성된 IAM 역할을 수임(assume)할 수 있도록 OpenID Connect ID 공급자로 추가됩니다.

이를 위해 openid-configuration과 공개 키가 클러스터에서 다음과 같이 자동으로 노출됩니다:

$ curl https://teleport.example.com/.well-known/openid-configuration

이 통합에는 별도의 구성이나 실행할 서비스가 필요하지 않습니다.

초기에는 IAM 역할에 아무런 정책도 추가되지 않지만, 사용자가 특정 기능을 처음 사용하려고 할 때 정책을 추가하도록 안내됩니다. 예를 들어 External Audit Storage를 설정할 때, 이 IAM 역할에 필요한 정책을 추가하라는 안내를 받게 됩니다.

이 통합으로 생성된 AWS 리소스에는 태그가 지정되므로 AWS Resource Groups / Tag Editor를 사용하여 검색하고 내보낼 수 있습니다. 다음 태그가 적용됩니다:

teleport.dev/cluster      cluster-name
teleport.dev/origin       integration_awsoidc
teleport.dev/integration  my-integration

사전 요구 사항#

  • 실행 중인 Teleport 클러스터.
  • IAM ID 공급자 및 역할을 생성할 수 있는 권한을 가진 AWS 계정

1/4단계. RBAC 구성#

통합을 구성하려면 Teleport 역할 중 하나에 다음 허용 규칙이 필요합니다. 이 규칙은 프리셋 editor 역할에 기본적으로 포함되어 있습니다. 또는 integration-manager.yaml이라는 파일에 다음 권한을 가진 역할을 정의할 수도 있습니다:

kind: role
version: v7
metadata:
  name: integration-manager
spec:
  allow:
    rules:
    - resources:
      - integration
      verbs:
      - create
      - update
      - list
      - read
      - delete
      - use

다음 명령을 실행하여 역할을 생성합니다:

$ tctl create -f integration-manager.yaml

2/4단계. AWS에서 ID 공급자 구성#

AWS IAM Identity Provider로 이동하여 ID 공급자를 구성합니다:

  • Provider type: OpenID Connect
  • Provider URL:
https://teleport.example.com
  • Audience: discover.teleport

향후 리소스를 추적하는 데 도움이 되도록 다음 태그도 추가하는 것이 좋습니다:

teleport.dev/cluster      cluster-name
teleport.dev/origin       integration_awsoidc
teleport.dev/integration  my-integration

3/4단계. IAM 역할 생성#

통합 iam-role에 필요한 정책을 할당하려면 IAM 역할을 생성해야 합니다.

이 IAM 역할은 정책 없이 생성되며, 정책은 사용하려는 기능에 따라 추가됩니다. 예를 들어 Access Graph AWS 동기화를 설정할 때 추가됩니다. 하지만 ID 공급자가 이 역할을 수임할 수 있도록 구성해야 합니다. 이를 위해 다음과 같은 신뢰 관계(Trust Relationship)를 추가하세요:

{
	"Version": "2012-10-17",
	"Statement": [
		{
			"Effect": "Allow",
			"Principal": {
				"Federated": "arn:aws:iam::aws-account-id:oidc-provider/teleport.example.com"
			},
			"Action": "sts:AssumeRoleWithWebIdentity",
			"Condition": {
				"StringEquals": {
					"teleport.example.com:aud": "discover.teleport"
				}
			}
		}
	]
}

또한 Teleport가 새로운 기능을 온보딩할 때 IAM 역할을 변경할 수 있도록 다음 태그도 추가해야 합니다:

teleport.dev/cluster      cluster-name
teleport.dev/origin       integration_awsoidc
teleport.dev/integration  my-integration

4/4단계. 통합 리소스 생성#

다음 내용으로 awsoidc-integration.yaml이라는 파일을 생성합니다:

kind: integration
sub_kind: aws-oidc
version: v1
metadata:
  name: my-integration
spec:
  aws_oidc:
    role_arn: "arn:aws:iam::aws-account-id:role/iam-role"

리소스를 생성합니다:

$ tctl create -f awsoidc-integration.yaml
integration 'my-integration' has been created

설정이 완료되면 이제 Teleport Web UI에서 "Enroll New Resource" 플로우나 기타 통합 의존 기능을 사용할 수 있습니다.

다음 단계#

이제 통합이 준비되었으니 다음 기능을 사용할 수 있습니다: