이 가이드는 Teleport AWS OIDC 통합을 설정하는 방법을 설명합니다.
AWS OIDC 통합을 통해 대부분의 사용 사례에 대해 더 이상 AWS에 Teleport 에이전트를 수동으로 배포할 필요가 없습니다.
다음 기능은 AWS와 상호작용하기 위해 AWS OIDC 통합을 사용합니다:
- 외부 감사 저장소
- RDS 자동 검색
- EC2 자동 검색
- Access Graph AWS 동기화
이것은 보다 수동적인 방법을 선호하거나 Infrastructure as Code 도구로 통합을 관리하고자 하는 사용자들을 대상으로 합니다.
이 가이드의 대안으로, Teleport 웹 UI(접근 관리 / 새 통합 등록)를 사용할 수 있습니다.
작동 방식
Teleport는 OpenID Connect 신원 공급자로 추가되어 AWS 계정과의 신뢰 관계를 구축하고 AWS 리소스에 접근하기 위해 설정된 IAM 역할을 가정합니다.
이것이 작동하기 위해서는, openid-configuration
와 공개 키가 자동으로 여러분의 클러스터에서 노출됩니다:
curl https://teleport.example.com/.well-known/openid-configuration
통합을 실행하기 위해 추가적인 구성이나 서비스가 필요하지 않습니다.
처음에는 IAM 역할에 정책이 추가되지 않지만, 사용자는 주어진 기능을 처음 사용할 때 이를 추가하도록 요청받습니다.
예를 들어, 외부 감사 저장소를 설정할 때 이 IAM 역할에 필요한 정책을 추가하라는 요청을 받게 됩니다.
전제 조건
- 실행 중인 Teleport 클러스터.
- IAM 신원 공급자 및 역할을 생성할 수 있는 권한이 있는 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에서 신원 공급자 구성
AWS IAM 신원 공급자로 이동하여 신원 공급자를 구성합니다:
- 공급자 유형: OpenID Connect
- 공급자 URL:
https://teleport.example.com
- 대상:
discover.teleport
다음 태그를 추가하는 것도 좋습니다, 이는 미래에 리소스를 추적하는 데 도움이 됩니다:
teleport.dev/cluster cluster-nameteleport.dev/origin integration_awsoidcteleport.dev/integration my-integration
단계 3/4. IAM 역할 생성
IAM 역할을 생성하여 통합 iam-role에 필요한 정책을 할당해야 합니다.
이 IAM 역할은 아무런 정책 없이 생성되며, 사용하고자 하는 기능에 따라 정책이 추가됩니다, 예를 들어 Access Graph AWS 동기화를 설정할 때입니다.
하지만, 신원 공급자가 이를 가정할 수 있도록 구성되어야 합니다.
이를 달성하기 위해, 다음 신뢰 관계를 추가합니다:
{
"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-nameteleport.dev/origin integration_awsoidcteleport.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.yamlintegration 'my-integration' has been created
설정이 완료되면 이제 Teleport 웹 UI에서 "새 리소스 등록" 흐름을 사용하거나 다른 통합에 의존하는 기능을 사용할 수 있습니다.
다음 단계
이제 통합이 완료되었으므로 다음 기능을 사용할 수 있습니다: