AWS OIDC 통합
이 가이드는 Teleport AWS OIDC 통합을 설정하는 방법을 설명합니다. AWS OIDC 통합을 사용하면 대부분의 사용 사례에서 AWS에 Teleport 에이전트를 수동으로 배포할 필요가 없어집니다. 이 가이드는 보다 수동적인 방식 또는 Infrastructure as Code 도구로 통합을 관리하려는 사용자를 대상으로 합니다.
이 가이드는 Teleport AWS OIDC 통합을 설정하는 방법을 설명합니다.
AWS OIDC 통합을 사용하면 대부분의 사용 사례에서 AWS에 Teleport 에이전트를 수동으로 배포할 필요가 없어집니다. 다음 기능은 AWS OIDC 통합을 사용하여 AWS와 상호작용합니다:
이 가이드는 보다 수동적인 방식 또는 Infrastructure as Code 도구로 통합을 관리하려는 사용자를 대상으로 합니다.
이 가이드의 대안으로 Teleport Web UI를 사용할 수 있습니다. 왼쪽 패널에서 Add New -> Integration을 클릭합니다.
작동 방식#
Teleport는 AWS 계정과 신뢰를 설정하고 AWS 리소스에 접근하기 위해 구성된 IAM 역할을 수임하기 위해 OpenID Connect identity provider로 추가됩니다.
이것이 작동하려면 openid-configuration과 공개 키가 클러스터에서 다음 위치에 자동으로 노출됩니다:
$ curl https:///.well-known/openid-configuration
통합에는 추가 구성이나 서비스가 필요하지 않습니다.
처음에는 IAM 역할에 정책이 추가되지 않지만, 사용자가 특정 기능을 처음 사용하려고 할 때 추가하도록 요청받습니다. 예를 들어, 외부 감사 스토리지를 설정할 때 이 IAM 역할에 필요한 정책을 추가하라는 메시지가 표시됩니다.
통합이 생성한 AWS 리소스는 AWS Resource Groups / Tag Editor를 사용하여 검색하고 내보낼 수 있도록 태그가 지정됩니다. 다음 태그가 적용됩니다:
teleport.dev/cluster
teleport.dev/origin integration_awsoidc
teleport.dev/integration
사전 요구 사항#
- 실행 중인 Teleport 클러스터
- IAM Identity Provider 및 역할을 생성할 수 있는 AWS 계정 및 권한
1/4단계. RBAC 구성#
통합을 구성하려면 Teleport 역할 중 하나에 다음 허용 규칙이 필요합니다.
이는 프리셋 editor 역할에서 기본적으로 사용 가능합니다:
kind: role
version: v7
metadata:
name: example
spec:
allow:
rules:
- resources:
- integration
verbs:
- create
- update
- list
- read
- delete
- use
2/4단계. AWS에서 Identity Provider 구성#
AWS IAM Identity Provider로 이동하여 Identity Provider를 구성합니다:
- 제공자 유형: OpenID Connect
- 제공자 URL:
https://
- 대상(Audience):
discover.teleport
나중에 리소스를 추적하는 데 도움이 되도록 다음 태그도 추가해야 합니다:
teleport.dev/cluster
teleport.dev/origin integration_awsoidc
teleport.dev/integration
3/4단계. IAM 역할 생성#
통합 에 필요한 정책을 할당하기 위해 IAM 역할을 생성해야 합니다.
이 IAM 역할은 정책 없이 생성되며, 예를 들어 Access Graph AWS 동기화를 설정할 때와 같이 사용하려는 기능에 따라 추가됩니다. 그러나 Identity Provider가 이를 수임할 수 있도록 구성되어야 합니다. 이를 위해 다음 신뢰 관계를 추가합니다:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Federated": "arn:aws:iam::aws-account-id" description="AWS Account ID"/>:oidc-provider/teleport.example.com" />"
},
"Action": "sts:AssumeRoleWithWebIdentity",
"Condition": {
"StringEquals": {
"teleport.example.com" />:aud": "discover.teleport"
}
}
}
]
}
또한 Teleport가 새 기능을 온보딩할 때 IAM 역할을 변경할 수 있도록 하기 위해 사용되는 다음 태그를 추가해야 합니다:
teleport.dev/cluster
teleport.dev/origin integration_awsoidc
teleport.dev/integration
4/4단계. 통합 리소스 생성#
다음 내용으로 awsoidc-integration.yaml 파일을 생성합니다:
kind: integration
sub_kind: aws-oidc
version: v1
metadata:
name: name="my-integration"/>
spec:
aws_oidc:
role_arn: "arn:aws:iam::aws-account-id"/>:role/ name="iam-role"/>"
리소스를 생성합니다:
$ tctl create -f awsoidc-integration.yaml
integration '' has been created
설정이 완료되면 Teleport Web UI에서 "Enroll New Resource" 플로우 또는 기타 통합 종속 기능을 사용할 수 있습니다.
다음 단계#
이제 통합이 있으므로 다음 기능을 사용할 수 있습니다:
