InfoGrab Docs

Teleport로 AWS CLI 및 콘솔 접근 보호하기

요약

Teleport는 AWS IAM Identity Provider와 통합하여 AWS CLI 및 콘솔 접근을 제공합니다. AWS IAM Roles Anywhere를 사용하고 있다면, AWS 콘솔 및 CLI 기반 도구에 대한 접근을 관리하는 권장 방법을 제공하는 해당 가이드를 참조하십시오.

Teleport는 AWS IAM Identity Provider와 통합하여 AWS CLI 및 콘솔 접근을 제공합니다. 이를 통해 Teleport의 역할 기반 접근 제어(RBAC), 적시 접근 요청(Just-in-Time Access Requests) 및 기타 Teleport Zero Trust 접근과 Identity Governance 기능을 활용하여 AWS 인프라에 대한 접근을 관리할 수 있습니다.

Tip

AWS IAM Roles Anywhere를 사용하고 있다면, AWS 콘솔 및 CLI 기반 도구에 대한 접근을 관리하는 권장 방법을 제공하는 해당 가이드를 참조하십시오.

퍼블릭 클러스터가 없거나 조직에서 Roles Anywhere를 도입하지 않은 경우, Teleport를 통해 감사 캡처와 함께 사용자에게 AWS CLI 접근을 제공하려면 에이전트 기반 AWS 접근 가이드를 참조하십시오.

Teleport Web UI에서 "AWS CLI/Console Access via AWS OIDC IdP" 등록 마법사를 사용하여 접근을 설정하거나, 이 가이드에 따라 수동으로 설정할 수 있습니다.

작동 방식#

AWS CLI 및 콘솔 접근을 설정하려면 AWS OIDC 통합이 필요합니다. AWS OIDC 통합은 AWS IAM OpenID Connect Identity Provider(OIDC IdP)와 Teleport 클러스터가 수임할 수 있는 AWS IAM 역할을 생성하고 구성합니다.

등록 마법사는 AWS OIDC 통합 IAM 역할에 권한을 추가하여 사용자가 다른 기존 IAM 역할을 수임할 수 있도록 합니다.

사전 요구 사항#

  • 실행 중인 Teleport 클러스터
  • 프리셋 editor 역할을 가진 Teleport 사용자
  • IAM Identity Provider 및 역할을 생성할 수 있는 AWS 계정 및 권한

1/6단계. AWS OIDC 통합 생성#

등록 마법사는 Teleport Web UI의 "Add New Resource" 패널에서 사용할 수 있습니다:

AWS CLI/Console Access via AWS OIDC IdP 등록 마법사 타일 스크린샷

Teleport Web UI는 AWS OIDC 통합 설정(아직 없는 경우), IAM 권한 구성 및 AWS IAM 역할에 대한 접근 설정 단계를 안내합니다.

필드를 AWS OIDC 통합이 생성한 IAM 역할 이름으로 설정합니다.

2/6단계. 통합이 다른 IAM 역할을 수임할 수 있도록 허용#

마법사는 AWS OIDC 통합 IAM 역할이 다른 IAM 역할을 수임하는 데 필요한 권한을 구성하는 스크립트를 실행하도록 안내합니다.

이 스크립트는 통합의 IAM 역할에 다음 인라인 정책을 추가합니다:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:ResourceTag/teleport.dev/integration": "true"
                }
            }
        }
    ]
}

3/6단계. 모든 IAM 역할에 신뢰 관계 추가#

태그 teleport.dev/integration=true가 있고 신뢰 관계가 통합 역할의 수임을 허용하는 AWS IAM 역할만 Teleport 사용자가 AWS 콘솔 및 CLI에 접근하는 데 사용할 수 있습니다.

모든 대상 IAM 역할의 신뢰 관계에는 다음 구문이 포함되어야 합니다:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::aws-account-id"/>:role/integration-iam-role"/>"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

4/6단계. Teleport에 AWS CLI/콘솔 앱 생성#

등록 마법사는 사용자가 AWS 콘솔 및 CLI에 접근할 수 있도록 하는 Teleport의 AWS App 리소스를 생성합니다. tctl을 사용하여 리소스를 생성하면 수동으로 수행할 수 있습니다:

  1. 을 Teleport 클러스터의 공개 주소(예: teleport.example.com)로 설정합니다.

  2. 를 무작위로 생성된 UUID로 설정합니다.

  3. 다음 내용을 _app_access.yaml이라는 파일에 작성합니다: yaml kind: app_server metadata: name: spec: app: kind: app metadata: labels: aws_account_id: "" name: spec: cloud: AWS uri: https://console.aws.amazon.com/ integration: public_addr: . version: v3 host_id: version: v3

  4. 다음 명령으로 AWS 앱을 생성합니다: code $ tctl create -f _app_access.yaml

접근 제어를 더욱 세밀하게 조정하기 위해 spec.app.metadata.labels에 다른 레이블을 추가할 수 있습니다.

5/6단계. 접근 설정#

다음 단계에서는 Teleport를 사용하여 접근하려는 AWS 역할 ARN을 입력하라는 메시지가 표시됩니다.

이렇게 하면 AWS 역할 ARN이 Teleport 사용자 프로필에 추가되어 AWS 앱에 접근할 때 수임할 수 있습니다.

SSO 사용자

이 단계는 SSO 사용자에게는 해당되지 않습니다. 이 경우 역할 템플릿을 사용하여 Identity Provider를 통해 AWS 역할 ARN을 매핑해야 합니다.

다른 사용자에게 접근 권한을 부여하려면 다음을 포함하는 Teleport 역할을 생성해야 합니다:

  • aws_role_arns 필드에 AWS 역할 ARN 목록 포함
  • 이전 단계에서 생성한 AWS 앱에 대한 접근을 허용하는 적절한 app_labels 매처 포함(예: aws_account_id: )

예를 들어, AWS 역할 에 대한 접근 권한을 부여하려면:

  1. 다음 내용을 aws_access_.yaml이라는 파일에 작성합니다: ```yaml kind: role metadata: name: aws_access_ spec: allow: app_labels: aws_account_id: "" aws_role_arns:

    • arn:aws:iam:::role/ version: v8 ```
  2. 다음 명령으로 AWS 앱을 생성합니다: code $ tctl create -f aws_access_.yaml

이 역할을 사용자에게 할당하면 CLI 또는 Management Console을 사용하여 AWS IAM 역할을 수임할 수 있습니다.

6/6단계. AWS 콘솔 및 CLI 접근#

이제 이전 단계에서 생성한 AWS 앱을 클릭하여 Teleport Web UI를 통해 AWS 콘솔에 접근할 수 있습니다.

문제 해결#

AWS 앱이 목록에 없거나 IAM 역할 목록이 비어 있음#

사용자는 AWS 콘솔에 접근하기 위한 두 가지 RBAC 권한이 모두 필요합니다:

  • 앱 레이블(app_labels)이 AWS 앱에 정의된 레이블과 일치해야 합니다
  • AWS 역할 ARN(aws_role_arns)에는 허용된 IAM 역할 중 하나 이상이 포함되어야 합니다

특정 IAM 역할 접근 시 오류 발생#

이는 AWS 앱에 접근할 때 선택한 대상 IAM 역할이 위에서 언급한 요구 사항을 충족하지 않을 때 발생할 수 있습니다:

  • 태그 teleport.dev/integration=true가 있어야 합니다
  • 신뢰 관계가 AWS OIDC 통합 IAM 역할의 수임을 허용해야 합니다

자세한 내용은 3단계를 참조하십시오.

다음 단계#

이제 AWS Management Console 및 API에 대한 접근을 보호하기 위해 Teleport를 설정하는 방법을 알았으니, 조직의 필요에 맞게 설정을 조정할 수 있습니다.

AWS IAM 역할 매핑 세분화#

aws_role_arns 필드는 템플릿 변수를 지원하므로 사용자가 Teleport에 인증할 때 동적으로 채울 수 있습니다.

예를 들어, aws_role_arns라는 SAML 속성이나 OIDC 클레임을 정의하도록 identity provider를 구성하고, 이 필드를 사용하여 IdP에서 각 사용자의 허용된 AWS 역할 ARN을 나열할 수 있습니다. Teleport 역할에서 {{external.aws_role_arns}} 변수를 언급하도록 정의하면, Auth Service는 IdP의 데이터를 기반으로 사용자의 허용된 ARN을 채웁니다:

    aws_role_arns:
    - {{external.aws_role_arns}}

특정 프로필 및 IAM 역할에 접근 권한을 부여하는 Teleport 역할 생성#

각 프로필의 프로필 및 IAM 역할에 대한 접근 권한을 부여하는 여러 Teleport 역할을 생성할 수 있습니다.

역할 생성 방법과 접근 요청을 사용하여 접근하는 방법에 대해 자세히 알아보려면 역할 접근 요청을 참조하십시오.

Teleport로 AWS CLI 및 콘솔 접근 보호하기

원문 보기
요약

Teleport는 AWS IAM Identity Provider와 통합하여 AWS CLI 및 콘솔 접근을 제공합니다. AWS IAM Roles Anywhere를 사용하고 있다면, AWS 콘솔 및 CLI 기반 도구에 대한 접근을 관리하는 권장 방법을 제공하는 해당 가이드를 참조하십시오.

Teleport는 AWS IAM Identity Provider와 통합하여 AWS CLI 및 콘솔 접근을 제공합니다. 이를 통해 Teleport의 역할 기반 접근 제어(RBAC), 적시 접근 요청(Just-in-Time Access Requests) 및 기타 Teleport Zero Trust 접근과 Identity Governance 기능을 활용하여 AWS 인프라에 대한 접근을 관리할 수 있습니다.

Tip

AWS IAM Roles Anywhere를 사용하고 있다면, AWS 콘솔 및 CLI 기반 도구에 대한 접근을 관리하는 권장 방법을 제공하는 해당 가이드를 참조하십시오.

퍼블릭 클러스터가 없거나 조직에서 Roles Anywhere를 도입하지 않은 경우, Teleport를 통해 감사 캡처와 함께 사용자에게 AWS CLI 접근을 제공하려면 에이전트 기반 AWS 접근 가이드를 참조하십시오.

Teleport Web UI에서 "AWS CLI/Console Access via AWS OIDC IdP" 등록 마법사를 사용하여 접근을 설정하거나, 이 가이드에 따라 수동으로 설정할 수 있습니다.

작동 방식#

AWS CLI 및 콘솔 접근을 설정하려면 AWS OIDC 통합이 필요합니다. AWS OIDC 통합은 AWS IAM OpenID Connect Identity Provider(OIDC IdP)와 Teleport 클러스터가 수임할 수 있는 AWS IAM 역할을 생성하고 구성합니다.

등록 마법사는 AWS OIDC 통합 IAM 역할에 권한을 추가하여 사용자가 다른 기존 IAM 역할을 수임할 수 있도록 합니다.

사전 요구 사항#

  • 실행 중인 Teleport 클러스터
  • 프리셋 editor 역할을 가진 Teleport 사용자
  • IAM Identity Provider 및 역할을 생성할 수 있는 AWS 계정 및 권한

1/6단계. AWS OIDC 통합 생성#

등록 마법사는 Teleport Web UI의 "Add New Resource" 패널에서 사용할 수 있습니다:

AWS CLI/Console Access via AWS OIDC IdP 등록 마법사 타일 스크린샷

Teleport Web UI는 AWS OIDC 통합 설정(아직 없는 경우), IAM 권한 구성 및 AWS IAM 역할에 대한 접근 설정 단계를 안내합니다.

필드를 AWS OIDC 통합이 생성한 IAM 역할 이름으로 설정합니다.

2/6단계. 통합이 다른 IAM 역할을 수임할 수 있도록 허용#

마법사는 AWS OIDC 통합 IAM 역할이 다른 IAM 역할을 수임하는 데 필요한 권한을 구성하는 스크립트를 실행하도록 안내합니다.

이 스크립트는 통합의 IAM 역할에 다음 인라인 정책을 추가합니다:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:ResourceTag/teleport.dev/integration": "true"
                }
            }
        }
    ]
}

3/6단계. 모든 IAM 역할에 신뢰 관계 추가#

태그 teleport.dev/integration=true가 있고 신뢰 관계가 통합 역할의 수임을 허용하는 AWS IAM 역할만 Teleport 사용자가 AWS 콘솔 및 CLI에 접근하는 데 사용할 수 있습니다.

모든 대상 IAM 역할의 신뢰 관계에는 다음 구문이 포함되어야 합니다:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::aws-account-id"/>:role/integration-iam-role"/>"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

4/6단계. Teleport에 AWS CLI/콘솔 앱 생성#

등록 마법사는 사용자가 AWS 콘솔 및 CLI에 접근할 수 있도록 하는 Teleport의 AWS App 리소스를 생성합니다. tctl을 사용하여 리소스를 생성하면 수동으로 수행할 수 있습니다:

  1. 을 Teleport 클러스터의 공개 주소(예: teleport.example.com)로 설정합니다.

  2. 를 무작위로 생성된 UUID로 설정합니다.

  3. 다음 내용을 _app_access.yaml이라는 파일에 작성합니다: yaml kind: app_server metadata: name: spec: app: kind: app metadata: labels: aws_account_id: "" name: spec: cloud: AWS uri: https://console.aws.amazon.com/ integration: public_addr: . version: v3 host_id: version: v3

  4. 다음 명령으로 AWS 앱을 생성합니다: code $ tctl create -f _app_access.yaml

접근 제어를 더욱 세밀하게 조정하기 위해 spec.app.metadata.labels에 다른 레이블을 추가할 수 있습니다.

5/6단계. 접근 설정#

다음 단계에서는 Teleport를 사용하여 접근하려는 AWS 역할 ARN을 입력하라는 메시지가 표시됩니다.

이렇게 하면 AWS 역할 ARN이 Teleport 사용자 프로필에 추가되어 AWS 앱에 접근할 때 수임할 수 있습니다.

SSO 사용자

이 단계는 SSO 사용자에게는 해당되지 않습니다. 이 경우 역할 템플릿을 사용하여 Identity Provider를 통해 AWS 역할 ARN을 매핑해야 합니다.

다른 사용자에게 접근 권한을 부여하려면 다음을 포함하는 Teleport 역할을 생성해야 합니다:

  • aws_role_arns 필드에 AWS 역할 ARN 목록 포함
  • 이전 단계에서 생성한 AWS 앱에 대한 접근을 허용하는 적절한 app_labels 매처 포함(예: aws_account_id: )

예를 들어, AWS 역할 에 대한 접근 권한을 부여하려면:

  1. 다음 내용을 aws_access_.yaml이라는 파일에 작성합니다: ```yaml kind: role metadata: name: aws_access_ spec: allow: app_labels: aws_account_id: "" aws_role_arns:

    • arn:aws:iam:::role/ version: v8 ```
  2. 다음 명령으로 AWS 앱을 생성합니다: code $ tctl create -f aws_access_.yaml

이 역할을 사용자에게 할당하면 CLI 또는 Management Console을 사용하여 AWS IAM 역할을 수임할 수 있습니다.

6/6단계. AWS 콘솔 및 CLI 접근#

이제 이전 단계에서 생성한 AWS 앱을 클릭하여 Teleport Web UI를 통해 AWS 콘솔에 접근할 수 있습니다.

문제 해결#

AWS 앱이 목록에 없거나 IAM 역할 목록이 비어 있음#

사용자는 AWS 콘솔에 접근하기 위한 두 가지 RBAC 권한이 모두 필요합니다:

  • 앱 레이블(app_labels)이 AWS 앱에 정의된 레이블과 일치해야 합니다
  • AWS 역할 ARN(aws_role_arns)에는 허용된 IAM 역할 중 하나 이상이 포함되어야 합니다

특정 IAM 역할 접근 시 오류 발생#

이는 AWS 앱에 접근할 때 선택한 대상 IAM 역할이 위에서 언급한 요구 사항을 충족하지 않을 때 발생할 수 있습니다:

  • 태그 teleport.dev/integration=true가 있어야 합니다
  • 신뢰 관계가 AWS OIDC 통합 IAM 역할의 수임을 허용해야 합니다

자세한 내용은 3단계를 참조하십시오.

다음 단계#

이제 AWS Management Console 및 API에 대한 접근을 보호하기 위해 Teleport를 설정하는 방법을 알았으니, 조직의 필요에 맞게 설정을 조정할 수 있습니다.

AWS IAM 역할 매핑 세분화#

aws_role_arns 필드는 템플릿 변수를 지원하므로 사용자가 Teleport에 인증할 때 동적으로 채울 수 있습니다.

예를 들어, aws_role_arns라는 SAML 속성이나 OIDC 클레임을 정의하도록 identity provider를 구성하고, 이 필드를 사용하여 IdP에서 각 사용자의 허용된 AWS 역할 ARN을 나열할 수 있습니다. Teleport 역할에서 {{external.aws_role_arns}} 변수를 언급하도록 정의하면, Auth Service는 IdP의 데이터를 기반으로 사용자의 허용된 ARN을 채웁니다:

    aws_role_arns:
    - {{external.aws_role_arns}}

특정 프로필 및 IAM 역할에 접근 권한을 부여하는 Teleport 역할 생성#

각 프로필의 프로필 및 IAM 역할에 대한 접근 권한을 부여하는 여러 Teleport 역할을 생성할 수 있습니다.

역할 생성 방법과 접근 요청을 사용하여 접근하는 방법에 대해 자세히 알아보려면 역할 접근 요청을 참조하십시오.