인포레터에서 최신 DevOps 트렌드를 격주로 만나보세요!
Teleport 정책으로 AWS 접근 패턴 발견하기
Teleport 정책은 전체 인프라에서 접근 관리를 간소화하고 중앙 집중화합니다. 몇 초 안에 접근 관계를 조회할 수 있으며, 모든 사용자, 그룹 및 컴퓨터 리소스 간의 통합되고 최신 관계와 정책을 볼 수 있습니다.
Teleport 정책은 접근 그래프와 함께 AWS 계정 내 접근 패턴에 대한 인사이트를 제공합니다. IAM 권한, 사용자, 그룹, 리소스 및 ID를 스캔함으로써, 시각적 표현을 제공하고 AWS 환경 내 권한 모델 향상에 도움을 줍니다. 이 기능을 통해 다음과 같은 질문을 다룰 수 있습니다:
- AWS 사용자 및 역할이 접근할 수 있는 리소스는 무엇인가요?
- EC2 인스턴스와 관련된 ID를 통해 도달할 수 있는 리소스는 무엇인가요?
- Teleport 사용자가 EC2 노드에 연결할 때 접근할 수 있는 AWS 리소스는 무엇인가요?
AWS 계정 내 IAM 권한을 분석하기 위해 접근 그래프를 활용하려면, 접근 그래프(AG) 서비스 설정, Discovery Service 설정 및 AWS 계정 통합이 필요합니다.
접근 그래프는 Teleport 정책 제품의 기능으로, Teleport Enterprise 고객이 사용할 수 있습니다.
Teleport UI에 로그인한 후, 관리 탭으로 이동합니다. 설정이 활성화되어 있으면, 접근 그래프 옵션은 권한 관리 섹션에서 찾을 수 있습니다.
작동 방식
접근 그래프는 AWS 접근 패턴을 발견하고 다양한 AWS 리소스(IAM 정책, 그룹, 사용자, 사용자 그룹, EC2 인스턴스, EKS 클러스터, RDS 데이터베이스 등)를 동기화합니다. 이러한 리소스는 Teleport 정책 사용 페이지에서 자세히 설명된 그래프 표현을 사용하여 시각화됩니다.
가져오기 과정은 두 가지 주요 단계로 구성됩니다:
클라우드 API 폴링
Teleport Discovery Service는 구성된 AWS 계정을 지속적으로 스캔합니다. 15분 간격으로 AWS 계정에서 다음 리소스를 가져옵니다:
- 사용자
- 그룹
- 사용자 그룹
- IAM 역할
- IAM 정책
- EC2 인스턴스
- EKS 클러스터
- RDS 데이터베이스
- S3 버킷
모든 필요한 리소스가 가져오고 나면, Teleport Discovery Service는 이를 접근 그래프에 푸시하여 AWS 환경의 최신 정보로 업데이트 상태를 유지합니다.
리소스 가져오기
Teleport 정책의 접근 그래프 기능은 AWS 계정에서 검색한 IAM 정책, ID 및 리소스를 깊이 있게 분석하여, 이들의 그래픽 표현을 작성합니다.
필요 조건
- Teleport Enterprise 클러스터 v14.3.9/v15.2.0 이상이 실행 중이어야 합니다.
- 귀하의 계정에 대해 Teleport 정책이 활성화되어 있어야 합니다.
- 자가 호스팅 클러스터의 경우:
- Auth Service 구성에서 최신
license.pem
파일을 사용해야 합니다. - 실행 중인 접근 그래프 노드 v1.17.0 이상이 필요합니다. 접근 그래프 설정 방법에 대한 자세한 내용은 Teleport 정책 페이지를 참조하십시오.
- 접근 그래프 서비스가 Teleport Auth Service에서 도달 가능해야 합니다.
- Auth Service 구성에서 최신
1/2 단계. Discovery Service 구성 (자가 호스팅 전용)
관리형 Teleport Enterprise 클러스터가 있는 경우, 이 단계를 무시할 수 있습니다. 관리형 Teleport Enterprise는 이미 클러스터 내에 올바르게 구성된 Discovery Service를 운영하고 있습니다.
Teleport Discovery Service를 활성화하려면, 제공된 스니펫을 Auth Service 구성에 추가합니다.
이 서비스는 discovery_group
이 일치하는 동적 discovery_config
리소스를 모니터링합니다.
access-graph-disc.
discovery_service:
enabled: true
discovery_group: access-graph-disc
이미 클러스터 내에서 Discovery Service를 운영 중인 경우, 다음 요구 사항이 충족되는 한 이를 재사용할 수 있습니다:
- 2단계에서 기존 Discovery Service의
discovery_group
과discovery_group
을 일치시킵니다. - 접근 그래프 서비스가 Discovery Service가 실행되는 머신에서 도달 가능해야 합니다.
2/2단계. Access Graph AWS 동기화 설정
AWS Sync 구성을 위한 설정 마법사를 시작하려면 Teleport UI에 접근하고, Management 탭으로 이동하여 Permission Management 섹션 내의 Access Graph 옵션을 선택하세요.
Teleport와 Access Graph 모두 AWS 동기화를 지원하는 경우, Access Graph 내비게이션 바 옆에 Analyze AWS IAM policies with Access Graph
라고 표시된 새 버튼이 나타납니다.
구성이 되어 있지 않은 경우, 새로운 Teleport AWS 통합을 생성하라는 메시지가 표시됩니다. 또는 이전에 설정한 통합을 선택할 수 있습니다.
통합을 선택하거나 생성한 후, 필요한 권한을 구성하기 위해 AWS Cloud Shell 내에서 bash 스크립트를 실행하라는 지시가 주어집니다.
정책은 읽기 전용 작업 세트를 기반으로 설계되어 Teleport가 AWS 계정 내 자원에 접근하고 정보를 검색할 수 있도록 합니다.
IAM 정책에는 다음 지침이 포함됩니다:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:DescribeInstances",
"ec2:DescribeImages",
"ec2:DescribeTags",
"ec2:DescribeSnapshots",
"ec2:DescribeKeyPairs",
"eks:ListClusters",
"eks:DescribeCluster",
"eks:ListAccessEntries",
"eks:ListAccessPolicies",
"eks:ListAssociatedAccessPolicies",
"eks:DescribeAccessEntry",
"rds:DescribeDBInstances",
"rds:DescribeDBClusters",
"rds:ListTagsForResource",
"rds:DescribeDBProxies",
"dynamodb:ListTables",
"dynamodb:DescribeTable",
"redshift:DescribeClusters",
"redshift:Describe*",
"s3:ListAllMyBuckets",
"s3:GetBucketPolicy",
"s3:ListBucket",
"s3:GetBucketLocation",
"s3:GetBucketTagging",
"iam:ListUsers",
"iam:GetUser",
"iam:ListRoles",
"iam:ListGroups",
"iam:ListPolicies",
"iam:ListGroupsForUser",
"iam:ListInstanceProfiles",
"iam:ListUserPolicies",
"iam:GetUserPolicy",
"iam:ListAttachedUserPolicies",
"iam:ListGroupPolicies",
"iam:GetGroupPolicy",
"iam:ListAttachedGroupPolicies",
"iam:GetPolicy",
"iam:GetPolicyVersion",
"iam:ListRolePolicies",
"iam:ListAttachedRolePolicies",
"iam:GetRolePolicy",
"iam:ListSAMLProviders",
"iam:GetSAMLProvider",
"iam:ListOpenIDConnectProviders",
"iam:GetOpenIDConnectProvider"
],
"Resource": "*"
}
]
}
IAM 정책이 Teleport에서 사용되는 IAM 역할에 성공적으로 연결되면, Teleport가 자원을 가져올 지역을 지정하라는 메시지가 표시됩니다. 이 선택은 지역 자원에만 관련되며 S3 Buckets, IAM Policies 또는 IAM Users와 같은 전역 자원에는 영향을 미치지 않습니다.
자체 호스팅 클러스터를 운영 중인 경우, 1단계에서 구성된 discovery_group
에 대한 입력도 제공해야 합니다.