ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [기술부채] trust relationship? assume role?
    개발자 라이프 2021. 3. 7. 23:49
    반응형

    기술 부채 개요

    부채 발생 상황

    • 팀원들이 배포 관련된 작업 중 trust relationship와 assume role라는 단어를 언급하며 이야기하는데, 이해할 수 없었다.
    • 사내 메신저에서도 같은 단어들을 몇 번 본 것 같았다.
    • AWS 환경에서의 권한과 관련된 경험이 없었다.

    부채 해소 방법

    • AWS 환경에서 권한과 관련된 개념을 정리한다.
    • trust relationship 과 assume role 이 어떤 단어인지 알아보고 정리한다.
    • 실제로 위 단어들이 어떻게 사용될지 그림으로 그린다.

    부채 해소

    AWS 환경에서 권한과 관련된 개념을 정리한다.

    Role

    Role은 AWS IAM 의 자격 증명으로써 리소스에 대한 접근할 수 있는 특정한 권한 정책을 갖습니다. 이러한 점에서 Role은 User와 유사합니다. 하지만 User는 특정한 개인에 해당하는 반면, Role은 필요로 하는 상황에 따라 가져다 취할 수 있습니다(assume). 또한, User는 비밀번호 혹은 Access key와 같이 비교적 긴 시간동안 유지되는 credential을 사용합니다. 하지만 Role은 취해질 때, 세션에 해당하는 일시적인 보안 credential을 제공합니다.

    Role Chaining

    사용자는 AWS CLI나 API 를 이용하여 Role을 엮을 수 있습니다(chaining). 예를 들어, Role A와 Role B가 있을 때, 사용자는 자신의 credential과 AssumeRole API를 이용하여 Role A를 취할 수 있습니다. API 호출의 결과로 Role A에 대한 일시적인 credential이 반환되고, 사용자는 이를 이용하여 다시 Role B를 취할 수 있습니다.

    Role을 취할 때는 세션 태그(session tag)를 전달할 수 있고, 나아가 그 태그를 전달 가능(transitive)하도록 설정할 수 있습니다. 전달 가능한 세션 태그는 role chain으로 인한 모든 추가 하위 세션에 전달됩니다.

    Delegation (위임)

    Delegation은 다른 누군가가 리소스에 접근하고 사용할 수 있도록 허가하는 것입니다. 이는 리소스를 소유한 계정과 리소스에 접근하려는 계정 간 _신뢰 관계(trust relationship)_가 형성되어 있어야 합니다. 이 때, 두 계정은 같은 계정일수도, 또는 하나의 조직에서 사용하는 다른 계정일수도, 또는 서로 다른 조직의 계정일수도 있습니다.

    trust relationship 과 assume role 이 어떤 단어인지 알아보고 정리한다.

    앞서 AWS IAM의 Role 에 관한 개념을 살펴보면서 trust relationship 과 AssumeRole 이라는 단어가 등장하는 것을 볼 수 있었습니다.
    요약하자면, AssumeRole은 권한 정책에 해당하는 Role 을 취하기 위한 작업(API)이고, 신뢰 관계(trust relationship)는 AssumeRole 작업을 하기 위한 전재 조건이 됩니다.

    실제로 위 단어들이 어떻게 사용될지 그림으로 그린다.

    Role A와 Role B 사이의 신뢰 관계 형성과 권한 위임

    결론

     Trust relationship과 AssumeRole은 다른 계정 간 권한 위임에 필요한 단어였음을 알 수 있었다.

    반응형

    댓글

Designed by Tistory.