InfoGrab DocsInfoGrab Docs

Teleport Identity Security로 AWS 접근 패턴 탐색

요약

Identity Security는 전체 인프라에 걸친 접근 관리를 간소화하고 중앙화합니다. Access Graph를 사용하는 Identity Security는 AWS 계정 내 접근 패턴에 대한 인사이트를 제공합니다. Identity Security는 또한 CloudTrail 데이터 수집, EKS(쿠버네티스) API 서버 감사 로그 수집, 위협 분석, 그리고 Okta 및 GitHub Actions와 같은 다른 서비스와의 상관 분석 기능도 제공합니다.

Identity Security는 전체 인프라에 걸친 접근 관리를 간소화하고 중앙화합니다. 모든 사용자, 그룹, 컴퓨팅 리소스 간의 통합되고 최신 관계 및 정책을 확인하여 몇 초 만에 접근 관계를 파악할 수 있습니다.

Access Graph를 사용하는 Identity Security는 AWS 계정 내 접근 패턴에 대한 인사이트를 제공합니다. IAM 권한, 사용자, 그룹, 리소스, 아이덴티티를 스캔하여 시각적 표현을 제공하고 AWS 환경 내 권한 모델을 개선하는 데 도움을 줍니다. 이 기능을 통해 다음과 같은 질문에 답할 수 있습니다:

  • AWS 사용자와 역할이 접근할 수 있는 리소스는 무엇인가?
  • EC2 인스턴스와 연결된 아이덴티티를 통해 어떤 리소스에 접근할 수 있는가?
  • Teleport 사용자가 EC2 노드에 연결할 때 접근할 수 있는 AWS 리소스는 무엇인가?

Identity Security는 또한 CloudTrail 데이터 수집, EKS(쿠버네티스) API 서버 감사 로그 수집, 위협 분석, 그리고 Okta 및 GitHub Actions와 같은 다른 서비스와의 상관 분석 기능도 제공합니다.

AWS 계정 내 IAM 권한을 분석하기 위해 Access Graph를 활용하려면 Access Graph 서비스, Discovery Service를 설정하고 AWS 계정과 통합해야 합니다.

이 가이드에서는 일반적으로 사용되는 Teleport Access Graph 통합을 설정하는 방법을 설명합니다.

Access Graph은 Teleport Enterprise 에디션 고객이 사용할 수 있는 Teleport Identity Security 제품의 기능입니다.

클러스터에 Access Graph이 올바르게 설정되었는지 확인하려면 Teleport Web UI에 로그인하고 Identity Security 사이드바 버튼을 클릭한 다음 Browse 메뉴 항목을 클릭합니다. 아이덴티티, 리소스 등이 나열되어야 합니다.

작동 방식#

Access Graph는 AWS 접근 패턴을 탐색하고, IAM 정책, 그룹, 사용자, 사용자 그룹, EC2 인스턴스, EKS 클러스터, RDS 데이터베이스, KMS 키를 포함한 다양한 AWS 리소스를 동기화합니다. 이러한 리소스는 Identity Security 사용 페이지에 자세히 설명된 그래프 표현을 사용하여 시각화됩니다.

가져오기 프로세스는 세 가지 주요 단계로 구성됩니다:

클라우드 API 폴링#

Teleport Discovery Service는 설정된 AWS 계정을 지속적으로 스캔합니다. 15분 간격으로 AWS 계정에서 다음 리소스를 가져옵니다:

  • 사용자
  • 그룹
  • 사용자 그룹
  • IAM 역할
  • IAM 정책
  • EC2 인스턴스
  • EKS 클러스터
  • RDS 데이터베이스
  • S3 버킷
  • KMS 키

필요한 모든 리소스를 가져온 후, Teleport Discovery Service는 이를 Access Graph로 전송하여 AWS 환경의 최신 정보로 지속적으로 업데이트되도록 합니다.

리소스 가져오기#

Identity Security의 Access Graph 기능은 AWS 계정에서 가져온 IAM 정책, 아이덴티티, 리소스를 심층 분석하여 그에 대한 그래픽 표현을 생성합니다.

AWS CloudTrail 로그 가져오기(선택 사항)#

CloudTrail이 AWS 계정에서 활동을 로깅하도록 구성되어 있으면, 로그 파일을 S3 버킷으로 전달합니다. Identity Activity Center는 트레일 데이터를 거의 실시간으로 처리할 수 있습니다. CloudTrail에서 Amazon SNS 알림을 활성화하면 새 로그 파일이 작성될 때마다 새 알림이 전송됩니다. 이 SNS 토픽은 SQS 큐에 구독되며, SQS 큐는 수신 알림에 대한 버퍼 역할을 합니다.

Teleport는 AWS 통합을 사용하여 SQS 큐를 구독하고 일정한 간격으로 새 메시지를 폴링합니다. 각 메시지에는 버킷 이름과 객체 키 같은 S3 내 새 객체에 대한 메타데이터가 포함됩니다. Teleport는 이 정보를 사용하여 S3에서 해당 CloudTrail 로그 파일을 직접 가져옵니다.

파일이 다운로드되면 Teleport는 CloudTrail 이벤트를 파싱하여 감사 및 보안 목적으로 처리합니다. 이를 통해 Identity Activity Center는 로그인 시도, API 호출, 인프라 변경 사항을 포함하여 AWS 서비스 전반의 활동에 대한 지속적인 가시성을 제공할 수 있습니다.

Amazon EKS API 서버 감사 로그 가져오기(선택 사항)#

EKS가 API 서버 감사 로그를 CloudWatch Logs로 로깅하도록 구성되어 있으면, Identity Activity Center는 이러한 로그를 거의 실시간으로 처리할 수 있습니다. Teleport는 이러한 로그를 지속적으로 가져와 감사 및 보안 목적으로 파싱합니다. 이를 통해 Identity Activity Center는 EKS 클러스터 내 활동에 대한 지속적인 가시성을 제공할 수 있습니다.

사전 요구사항#

  • 실행 중인 Teleport Enterprise 클러스터 v18.0.0 이상.
  • 계정에 Identity Security가 활성화되어 있어야 합니다.
  • 자체 호스팅 클러스터의 경우:
    • Auth Service 설정에서 최신 license.pem이 사용되고 있는지 확인하세요.
    • 실행 중인 Access Graph 노드 v1.28.0 이상. Access Graph 설정 방법에 대한 자세한 내용은 Identity Security 페이지를 확인하세요.
    • Access Graph 서비스를 실행하는 노드는 Teleport Auth Service에서 접근 가능해야 합니다.
    • 알림이 SNS 토픽으로 전송되도록 설정된 AWS CloudTrail.
    • CloudTrail SNS 알림으로부터 원시 메시지를 수신하는 AWS SQS 큐.

1/4단계. Discovery Service 구성(자체 호스팅 전용)#

Warning

클라우드 호스팅 Teleport Enterprise 클러스터를 사용하는 경우, 클라우드 호스팅 Teleport Enterprise는 이미 클러스터 내에서 적절히 구성된 Discovery Service를 운영하고 있으므로 이 단계는 무시해도 됩니다.

Teleport Discovery Service를 활성화하려면, Auth Service에서 사용하는 teleport.yaml 설정에 최상위 discovery_service 섹션을 추가하세요. 이 서비스는 discovery_group이 일치하는 동적 discovery_config 리소스를 모니터링합니다.

discovery-group.

discovery_service:
  enabled: true
  discovery_group: discovery-group

이미 클러스터 내에서 Discovery Service를 운영 중인 경우, 다음 요건이 충족되는 한 이를 재사용할 수 있습니다:

  • 2단계에서 discovery_group을 기존 Discovery Service의 discovery_group과 일치시킵니다.
  • Access Graph 서비스는 Discovery Service가 실행되는 머신에서 접근 가능해야 합니다.

2/4단계. Identity Activity Center용 CloudTrail 이벤트 통합(선택 사항)#

Identity Activity Center CloudTrail 통합을 활성화하려면, 기존 CloudTrail 트레일을 사용하거나 새로 만들 수 있습니다. 트레일은 단일 AWS 계정으로 범위를 지정하거나 여러 계정에서 이벤트를 수집하도록 AWS Organization 트레일로 구성할 수 있습니다. 이미 기존 트레일이 있다면 비용 절감을 위해 이를 사용하는 것을 권장합니다.

CloudTrail 데이터에 대한 거의 실시간 접근을 위해서는 트레일에서 Amazon SNS 알림을 활성화해야 합니다. SNS 알림이 아직 구성되지 않았다면, 트레일 설정으로 이동하여 SNS notification delivery를 활성화하고 새 SNS 토픽을 생성하세요.

Show Trail Settings

SNS 토픽을 설정한 후, 새 Standard Amazon SQS 큐를 생성하고 이를 방금 만든 SNS 토픽에 구독하세요. 이 큐는 트레일 SNS 알림 전용으로 고유하게 사용되어야 합니다. 구독을 구성할 때, Enable raw message delivery 옵션을 반드시 활성화하세요. 이 설정은 필수입니다. 활성화하지 않으면 Identity Activity Center가 알림을 올바르게 파싱할 수 없습니다.

Show SNS Settings

선택 사항이지만, SQS 큐와 대상 S3 버킷 모두에 대해 KMS 암호화를 활성화하는 것을 강력히 권장합니다. Identity Security가 SQS의 메시지를 성공적으로 복호화하고 S3 버킷의 CloudTrail 로그에 접근할 수 있도록 다음 단계에서 필요한 KMS 키 권한을 반드시 구성하세요.

3/4단계. Identity Activity Center용 Amazon EKS CloudWatch 감사 로그 통합(선택 사항)#

EKS API 서버 감사 로그에 대한 거의 실시간 접근을 설정하려면, AWS 웹 콘솔을 사용하여 EKS 클러스터 설정으로 이동하세요. "Observability" 탭에서 "Control plane logs" 섹션의 "Manage" 버튼을 클릭하세요. 그런 다음 "Audit" 체크박스를 선택하여 제어 플레인 로그를 CloudWatch Logs로 전송하세요.

Show EKS Audit Settings

4단계에서 수행되는 기본 설정은 구성된 AWS 리전의 모든 EKS 클러스터와 일치합니다. 로그를 가져올 EKS 클러스터를 더 세밀하게 선택하려면, EKS 클러스터의 태그와 일치하는 태그를 사용하여 discovery_config 리소스를 생성할 수 있습니다. 태그가 일치하는 클러스터는 CloudWatch Logs에서 API 서버 감사 로그를 가져와 Identity Activity Center로 가져옵니다.

  • resource-name: discovery_config 리소스의 이름입니다.
  • discovery-group: 기존 Discovery Service의 discovery_group과 일치하는 discovery_group 이름입니다(1단계에서 설명한 대로).
  • regions: EKS 클러스터를 탐색할 AWS 리전 목록입니다.
  • tag-name: EKS 클러스터가 일치해야 하는 태그의 이름이며, 모든 태그를 의미하려면 "*"를 사용합니다.
  • tag-value: 명명된 태그가 일치하기 위해 가져야 하는 값 또는 값 목록이며, 모든 값을 의미하려면 "*"를 사용합니다. 목록인 경우, 값 중 하나만 일치하면 됩니다.
kind: discovery_config
version: v1
metadata:
  name: resource-name
spec:
  discovery_group: discovery-group
  access_graph:
    aws:
      - regions: [regions]
        eks_audit_logs:
          tags:
            tag-name: tag-value
            ...
  1. 이 YAML 설정을 discovery_config.yaml 파일에 저장합니다.
  2. 이 설정 파일을 클러스터에 적용하며, 클러스터의 Teleport Proxy Service 도메인 이름으로 teleport.example.com을 지정합니다:
    $ tctl create --proxy=teleport.example.com -f discovery_config.yaml
    

이렇게 하면 Teleport가 지정된 리전에서 지정된 태그와 일치하는 EKS 클러스터의 감사 로그를 가져오도록 구성됩니다. 최근 7일간의 로그가 가져와지며, 이후 EKS 클러스터 태그가 discovery 설정과 일치하는 한 지속적으로 가져와집니다.

4/4단계. Access Graph AWS Sync 설정#

AWS Sync 구성을 위한 설정 마법사를 시작하려면, Teleport UI에 접속하여 Identity Security 사이드바 버튼을 클릭한 다음 Integrations를 클릭하세요.

"Setup new integration" 버튼을 클릭한 다음 "AWS"를 선택하세요. 아직 구성한 적이 없다면 새 Teleport AWS 통합을 생성하라는 메시지가 표시됩니다. 또는 이미 설정된 통합을 선택할 수도 있습니다.

통합을 선택하거나 생성하면, 필요한 권한을 구성하기 위해 AWS Cloud Shell 내에서 bash 스크립트를 실행하라는 안내가 표시됩니다.

AWS Sync에 필요한 IAM 정책 목록

이 정책은 읽기 전용 작업 세트로 설계되어 있으며, 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",
        "s3:GetBucketPolicyStatus",
        "s3:GetBucketAcl",

        "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",

        "kms:ListKeys",
        "kms:DescribeKey",
        "kms:ListResourceTags",
        "kms:ListAliases",
        "kms:GetKeyPolicy"
      ],
      "Resource": "*"
    }
  ]
}

Identity Activity Center가 활성화된 경우, CloudTrail 통합을 위해 다음 추가 구성이 필요합니다:

  • aws-sqs-queue: CloudTrail 알림을 수신하는 SNS 토픽에 구독된 Amazon SQS 큐의 ARN입니다.
  • aws-s3-trail-bucket: CloudTrail이 로그 파일을 전달하는 Amazon S3 버킷의 ARN입니다.
  • aws-sqs-kms-queue-key: SQS 큐의 메시지를 암호화하는 데 사용되는 AWS KMS 키의 ARN입니다.
  • aws-s3-kms-key: CloudTrail 로그를 저장하는 S3 버킷의 객체를 암호화하는 데 사용되는 AWS KMS 키의 ARN입니다.
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "sqs:ReceiveMessage",
        "sqs:DeleteMessage",
        "sqs:SendMessage"
      ],
      "Resource": "aws-sqs-queue"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:GetObjectVersion",
        "s3:ListBucket",
        "s3:ListBucketVersions",
        "s3:GetBucketLocation"
      ],
      "Resource": "aws-s3-trail-bucket"
    },
    {
      "Effect": "Allow",
      "Action": [
          "kms:Decrypt",
          "kms:DescribeKey",
          "kms:GenerateDataKey",
          "kms:GenerateDataKeyWithoutPlaintext"
      ],
      "Resource": [
        "aws-sqs-kms-queue-key",
        "aws-s3-kms-key"
      ]
    }
  ]
}

EKS Audit Log 통합이 활성화된 경우, IAM 정책에는 다음 지시문이 포함됩니다:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "logs:FilterLogEvents"
      ],
      "Resource": "arn:aws:logs:*:*:log-group:/aws/eks/*"
    }
  ]
}

IAM 정책이 Teleport가 사용하는 IAM 역할에 성공적으로 연결되면, Teleport가 리소스를 가져올 리전을 지정하라는 메시지가 표시됩니다. 이 선택은 리전별 리소스에만 해당되며 S3 버킷, IAM 정책, IAM 사용자와 같은 전역 리소스에는 영향을 미치지 않습니다.

자체 호스팅 클러스터를 운영 중이라면, 1단계에서 구성한 discovery_group에 대한 입력도 추가로 제공해야 합니다.

Teleport Identity Security로 AWS 접근 패턴 탐색

Teleport v18.9
원문 보기
요약

Identity Security는 전체 인프라에 걸친 접근 관리를 간소화하고 중앙화합니다. Access Graph를 사용하는 Identity Security는 AWS 계정 내 접근 패턴에 대한 인사이트를 제공합니다. Identity Security는 또한 CloudTrail 데이터 수집, EKS(쿠버네티스) API 서버 감사 로그 수집, 위협 분석, 그리고 Okta 및 GitHub Actions와 같은 다른 서비스와의 상관 분석 기능도 제공합니다.

Identity Security는 전체 인프라에 걸친 접근 관리를 간소화하고 중앙화합니다. 모든 사용자, 그룹, 컴퓨팅 리소스 간의 통합되고 최신 관계 및 정책을 확인하여 몇 초 만에 접근 관계를 파악할 수 있습니다.

Access Graph를 사용하는 Identity Security는 AWS 계정 내 접근 패턴에 대한 인사이트를 제공합니다. IAM 권한, 사용자, 그룹, 리소스, 아이덴티티를 스캔하여 시각적 표현을 제공하고 AWS 환경 내 권한 모델을 개선하는 데 도움을 줍니다. 이 기능을 통해 다음과 같은 질문에 답할 수 있습니다:

  • AWS 사용자와 역할이 접근할 수 있는 리소스는 무엇인가?
  • EC2 인스턴스와 연결된 아이덴티티를 통해 어떤 리소스에 접근할 수 있는가?
  • Teleport 사용자가 EC2 노드에 연결할 때 접근할 수 있는 AWS 리소스는 무엇인가?

Identity Security는 또한 CloudTrail 데이터 수집, EKS(쿠버네티스) API 서버 감사 로그 수집, 위협 분석, 그리고 Okta 및 GitHub Actions와 같은 다른 서비스와의 상관 분석 기능도 제공합니다.

AWS 계정 내 IAM 권한을 분석하기 위해 Access Graph를 활용하려면 Access Graph 서비스, Discovery Service를 설정하고 AWS 계정과 통합해야 합니다.

이 가이드에서는 일반적으로 사용되는 Teleport Access Graph 통합을 설정하는 방법을 설명합니다.

Access Graph은 Teleport Enterprise 에디션 고객이 사용할 수 있는 Teleport Identity Security 제품의 기능입니다.

클러스터에 Access Graph이 올바르게 설정되었는지 확인하려면 Teleport Web UI에 로그인하고 Identity Security 사이드바 버튼을 클릭한 다음 Browse 메뉴 항목을 클릭합니다. 아이덴티티, 리소스 등이 나열되어야 합니다.

작동 방식#

Access Graph는 AWS 접근 패턴을 탐색하고, IAM 정책, 그룹, 사용자, 사용자 그룹, EC2 인스턴스, EKS 클러스터, RDS 데이터베이스, KMS 키를 포함한 다양한 AWS 리소스를 동기화합니다. 이러한 리소스는 Identity Security 사용 페이지에 자세히 설명된 그래프 표현을 사용하여 시각화됩니다.

가져오기 프로세스는 세 가지 주요 단계로 구성됩니다:

클라우드 API 폴링#

Teleport Discovery Service는 설정된 AWS 계정을 지속적으로 스캔합니다. 15분 간격으로 AWS 계정에서 다음 리소스를 가져옵니다:

  • 사용자
  • 그룹
  • 사용자 그룹
  • IAM 역할
  • IAM 정책
  • EC2 인스턴스
  • EKS 클러스터
  • RDS 데이터베이스
  • S3 버킷
  • KMS 키

필요한 모든 리소스를 가져온 후, Teleport Discovery Service는 이를 Access Graph로 전송하여 AWS 환경의 최신 정보로 지속적으로 업데이트되도록 합니다.

리소스 가져오기#

Identity Security의 Access Graph 기능은 AWS 계정에서 가져온 IAM 정책, 아이덴티티, 리소스를 심층 분석하여 그에 대한 그래픽 표현을 생성합니다.

AWS CloudTrail 로그 가져오기(선택 사항)#

CloudTrail이 AWS 계정에서 활동을 로깅하도록 구성되어 있으면, 로그 파일을 S3 버킷으로 전달합니다. Identity Activity Center는 트레일 데이터를 거의 실시간으로 처리할 수 있습니다. CloudTrail에서 Amazon SNS 알림을 활성화하면 새 로그 파일이 작성될 때마다 새 알림이 전송됩니다. 이 SNS 토픽은 SQS 큐에 구독되며, SQS 큐는 수신 알림에 대한 버퍼 역할을 합니다.

Teleport는 AWS 통합을 사용하여 SQS 큐를 구독하고 일정한 간격으로 새 메시지를 폴링합니다. 각 메시지에는 버킷 이름과 객체 키 같은 S3 내 새 객체에 대한 메타데이터가 포함됩니다. Teleport는 이 정보를 사용하여 S3에서 해당 CloudTrail 로그 파일을 직접 가져옵니다.

파일이 다운로드되면 Teleport는 CloudTrail 이벤트를 파싱하여 감사 및 보안 목적으로 처리합니다. 이를 통해 Identity Activity Center는 로그인 시도, API 호출, 인프라 변경 사항을 포함하여 AWS 서비스 전반의 활동에 대한 지속적인 가시성을 제공할 수 있습니다.

Amazon EKS API 서버 감사 로그 가져오기(선택 사항)#

EKS가 API 서버 감사 로그를 CloudWatch Logs로 로깅하도록 구성되어 있으면, Identity Activity Center는 이러한 로그를 거의 실시간으로 처리할 수 있습니다. Teleport는 이러한 로그를 지속적으로 가져와 감사 및 보안 목적으로 파싱합니다. 이를 통해 Identity Activity Center는 EKS 클러스터 내 활동에 대한 지속적인 가시성을 제공할 수 있습니다.

사전 요구사항#

  • 실행 중인 Teleport Enterprise 클러스터 v18.0.0 이상.
  • 계정에 Identity Security가 활성화되어 있어야 합니다.
  • 자체 호스팅 클러스터의 경우:
    • Auth Service 설정에서 최신 license.pem이 사용되고 있는지 확인하세요.
    • 실행 중인 Access Graph 노드 v1.28.0 이상. Access Graph 설정 방법에 대한 자세한 내용은 Identity Security 페이지를 확인하세요.
    • Access Graph 서비스를 실행하는 노드는 Teleport Auth Service에서 접근 가능해야 합니다.
    • 알림이 SNS 토픽으로 전송되도록 설정된 AWS CloudTrail.
    • CloudTrail SNS 알림으로부터 원시 메시지를 수신하는 AWS SQS 큐.

1/4단계. Discovery Service 구성(자체 호스팅 전용)#

Warning

클라우드 호스팅 Teleport Enterprise 클러스터를 사용하는 경우, 클라우드 호스팅 Teleport Enterprise는 이미 클러스터 내에서 적절히 구성된 Discovery Service를 운영하고 있으므로 이 단계는 무시해도 됩니다.

Teleport Discovery Service를 활성화하려면, Auth Service에서 사용하는 teleport.yaml 설정에 최상위 discovery_service 섹션을 추가하세요. 이 서비스는 discovery_group이 일치하는 동적 discovery_config 리소스를 모니터링합니다.

discovery-group.

discovery_service:
  enabled: true
  discovery_group: discovery-group

이미 클러스터 내에서 Discovery Service를 운영 중인 경우, 다음 요건이 충족되는 한 이를 재사용할 수 있습니다:

  • 2단계에서 discovery_group을 기존 Discovery Service의 discovery_group과 일치시킵니다.
  • Access Graph 서비스는 Discovery Service가 실행되는 머신에서 접근 가능해야 합니다.

2/4단계. Identity Activity Center용 CloudTrail 이벤트 통합(선택 사항)#

Identity Activity Center CloudTrail 통합을 활성화하려면, 기존 CloudTrail 트레일을 사용하거나 새로 만들 수 있습니다. 트레일은 단일 AWS 계정으로 범위를 지정하거나 여러 계정에서 이벤트를 수집하도록 AWS Organization 트레일로 구성할 수 있습니다. 이미 기존 트레일이 있다면 비용 절감을 위해 이를 사용하는 것을 권장합니다.

CloudTrail 데이터에 대한 거의 실시간 접근을 위해서는 트레일에서 Amazon SNS 알림을 활성화해야 합니다. SNS 알림이 아직 구성되지 않았다면, 트레일 설정으로 이동하여 SNS notification delivery를 활성화하고 새 SNS 토픽을 생성하세요.

Show Trail Settings

SNS 토픽을 설정한 후, 새 Standard Amazon SQS 큐를 생성하고 이를 방금 만든 SNS 토픽에 구독하세요. 이 큐는 트레일 SNS 알림 전용으로 고유하게 사용되어야 합니다. 구독을 구성할 때, Enable raw message delivery 옵션을 반드시 활성화하세요. 이 설정은 필수입니다. 활성화하지 않으면 Identity Activity Center가 알림을 올바르게 파싱할 수 없습니다.

Show SNS Settings

선택 사항이지만, SQS 큐와 대상 S3 버킷 모두에 대해 KMS 암호화를 활성화하는 것을 강력히 권장합니다. Identity Security가 SQS의 메시지를 성공적으로 복호화하고 S3 버킷의 CloudTrail 로그에 접근할 수 있도록 다음 단계에서 필요한 KMS 키 권한을 반드시 구성하세요.

3/4단계. Identity Activity Center용 Amazon EKS CloudWatch 감사 로그 통합(선택 사항)#

EKS API 서버 감사 로그에 대한 거의 실시간 접근을 설정하려면, AWS 웹 콘솔을 사용하여 EKS 클러스터 설정으로 이동하세요. "Observability" 탭에서 "Control plane logs" 섹션의 "Manage" 버튼을 클릭하세요. 그런 다음 "Audit" 체크박스를 선택하여 제어 플레인 로그를 CloudWatch Logs로 전송하세요.

Show EKS Audit Settings

4단계에서 수행되는 기본 설정은 구성된 AWS 리전의 모든 EKS 클러스터와 일치합니다. 로그를 가져올 EKS 클러스터를 더 세밀하게 선택하려면, EKS 클러스터의 태그와 일치하는 태그를 사용하여 discovery_config 리소스를 생성할 수 있습니다. 태그가 일치하는 클러스터는 CloudWatch Logs에서 API 서버 감사 로그를 가져와 Identity Activity Center로 가져옵니다.

  • resource-name: discovery_config 리소스의 이름입니다.
  • discovery-group: 기존 Discovery Service의 discovery_group과 일치하는 discovery_group 이름입니다(1단계에서 설명한 대로).
  • regions: EKS 클러스터를 탐색할 AWS 리전 목록입니다.
  • tag-name: EKS 클러스터가 일치해야 하는 태그의 이름이며, 모든 태그를 의미하려면 "*"를 사용합니다.
  • tag-value: 명명된 태그가 일치하기 위해 가져야 하는 값 또는 값 목록이며, 모든 값을 의미하려면 "*"를 사용합니다. 목록인 경우, 값 중 하나만 일치하면 됩니다.
kind: discovery_config
version: v1
metadata:
  name: resource-name
spec:
  discovery_group: discovery-group
  access_graph:
    aws:
      - regions: [regions]
        eks_audit_logs:
          tags:
            tag-name: tag-value
            ...
  1. 이 YAML 설정을 discovery_config.yaml 파일에 저장합니다.
  2. 이 설정 파일을 클러스터에 적용하며, 클러스터의 Teleport Proxy Service 도메인 이름으로 teleport.example.com을 지정합니다:
    $ tctl create --proxy=teleport.example.com -f discovery_config.yaml
    

이렇게 하면 Teleport가 지정된 리전에서 지정된 태그와 일치하는 EKS 클러스터의 감사 로그를 가져오도록 구성됩니다. 최근 7일간의 로그가 가져와지며, 이후 EKS 클러스터 태그가 discovery 설정과 일치하는 한 지속적으로 가져와집니다.

4/4단계. Access Graph AWS Sync 설정#

AWS Sync 구성을 위한 설정 마법사를 시작하려면, Teleport UI에 접속하여 Identity Security 사이드바 버튼을 클릭한 다음 Integrations를 클릭하세요.

"Setup new integration" 버튼을 클릭한 다음 "AWS"를 선택하세요. 아직 구성한 적이 없다면 새 Teleport AWS 통합을 생성하라는 메시지가 표시됩니다. 또는 이미 설정된 통합을 선택할 수도 있습니다.

통합을 선택하거나 생성하면, 필요한 권한을 구성하기 위해 AWS Cloud Shell 내에서 bash 스크립트를 실행하라는 안내가 표시됩니다.

AWS Sync에 필요한 IAM 정책 목록

이 정책은 읽기 전용 작업 세트로 설계되어 있으며, 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",
        "s3:GetBucketPolicyStatus",
        "s3:GetBucketAcl",

        "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",

        "kms:ListKeys",
        "kms:DescribeKey",
        "kms:ListResourceTags",
        "kms:ListAliases",
        "kms:GetKeyPolicy"
      ],
      "Resource": "*"
    }
  ]
}

Identity Activity Center가 활성화된 경우, CloudTrail 통합을 위해 다음 추가 구성이 필요합니다:

  • aws-sqs-queue: CloudTrail 알림을 수신하는 SNS 토픽에 구독된 Amazon SQS 큐의 ARN입니다.
  • aws-s3-trail-bucket: CloudTrail이 로그 파일을 전달하는 Amazon S3 버킷의 ARN입니다.
  • aws-sqs-kms-queue-key: SQS 큐의 메시지를 암호화하는 데 사용되는 AWS KMS 키의 ARN입니다.
  • aws-s3-kms-key: CloudTrail 로그를 저장하는 S3 버킷의 객체를 암호화하는 데 사용되는 AWS KMS 키의 ARN입니다.
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "sqs:ReceiveMessage",
        "sqs:DeleteMessage",
        "sqs:SendMessage"
      ],
      "Resource": "aws-sqs-queue"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:GetObjectVersion",
        "s3:ListBucket",
        "s3:ListBucketVersions",
        "s3:GetBucketLocation"
      ],
      "Resource": "aws-s3-trail-bucket"
    },
    {
      "Effect": "Allow",
      "Action": [
          "kms:Decrypt",
          "kms:DescribeKey",
          "kms:GenerateDataKey",
          "kms:GenerateDataKeyWithoutPlaintext"
      ],
      "Resource": [
        "aws-sqs-kms-queue-key",
        "aws-s3-kms-key"
      ]
    }
  ]
}

EKS Audit Log 통합이 활성화된 경우, IAM 정책에는 다음 지시문이 포함됩니다:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "logs:FilterLogEvents"
      ],
      "Resource": "arn:aws:logs:*:*:log-group:/aws/eks/*"
    }
  ]
}

IAM 정책이 Teleport가 사용하는 IAM 역할에 성공적으로 연결되면, Teleport가 리소스를 가져올 리전을 지정하라는 메시지가 표시됩니다. 이 선택은 리전별 리소스에만 해당되며 S3 버킷, IAM 정책, IAM 사용자와 같은 전역 리소스에는 영향을 미치지 않습니다.

자체 호스팅 클러스터를 운영 중이라면, 1단계에서 구성한 discovery_group에 대한 입력도 추가로 제공해야 합니다.