Detective Python 스크립트를 사용하여 계정 관리 - Amazon Detective

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Detective Python 스크립트를 사용하여 계정 관리

Amazon Detective는 GitHub 리포지토리 에 오픈 소스 Python 스크립트 세트를 제공합니다amazon-detective-multiaccount-scripts. 스크립트에는 Python 3이 필요합니다.

이를 사용하여 다음 작업을 수행할 수 있습니다.

  • 여러 리전의 관리자 계정에 대해 Detective를 활성화합니다.

    Detective를 활성화하면 동작 그래프에 태그 값을 할당할 수 있습니다.

  • 리전별 관리자 계정의 동작 그래프에 멤버 계정을 추가합니다.

  • 선택적으로 멤버 계정에 초대 이메일을 보낼 수 있습니다. 초대 이메일을 보내지 않도록 요청을 구성할 수도 있습니다.

  • 관리자 계정의 리전별 동작 그래프에서 멤버 계정을 제거합니다.

  • 여러 리전의 관리자 계정에 대해 Detective를 비활성화합니다. 관리자 계정이 Detective를 비활성화하면 각 리전의 관리자 계정 동작 그래프가 비활성화됩니다.

enableDetective.py 스크립트 개요

enableDetective.py 스크립트는 다음 작업을 수행합니다.

  1. 지정된 각 리전의 관리자 계정에 Detective가 아직 활성화되어 있지 않은 경우, 해당 리전의 관리자 계정에 대해 Detective를 활성화합니다.

    스크립트를 사용하여 Detective를 활성화하면 동작 그래프에 태그 값을 할당할 수 있습니다.

  2. 선택적으로 관리자 계정에서 각 동작 그래프의 지정된 멤버 계정으로 초대를 보냅니다.

    초대 이메일 메시지는 기본 메시지 콘텐츠를 사용하며 사용자 지정할 수 없습니다.

    초대 이메일을 보내지 않도록 요청을 구성할 수도 있습니다.

  3. 멤버 계정에 대한 초대를 자동으로 수락합니다.

    스크립트가 초대를 자동으로 수락하므로 멤버 계정은 이러한 메시지를 무시할 수 있습니다.

    초대가 자동으로 수락된다는 사실을 멤버 계정에 직접 문의하여 알리는 것이 좋습니다.

disableDetective.py 스크립트 개요

disableDetective.py 스크립트는 지정된 리전의 관리자 계정 동작 그래프에서 지정된 멤버 계정을 삭제합니다.

또한 지정된 리전의 관리자 계정에 대해 Detective를 비활성화하는 옵션도 제공합니다.

스트립트에 필요한 권한

스크립트에는 관리자 계정 및 추가하거나 제거하는 모든 멤버 계정의 기존 AWS 역할이 필요합니다.

참고

역할 이름은 모든 계정에서 동일해야 합니다.

IAM 정책 권장 모범 사례는 범위가 가장 작은 역할을 사용하는 것입니다. 그래프 생성, 멤버 생성, 그래프에 멤버 추가 등의 스크립트 워크플로를 실행하려면 다음과 같은 권한이 필요합니다.

  • 탐지:CreateGraph

  • 탐지:CreateMembers

  • 탐지:DeleteGraph

  • 탐지:DeleteMembers

  • 탐지:ListGraphs

  • 탐지:ListMembers

  • 탐지:AcceptInvitation

역할 신뢰 관계

역할 신뢰 관계를 통해 인스턴스 또는 로컬 보안 인증 정보가 역할을 맡을 수 있어야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<ACCOUNTID>:user/<USERNAME>" }, "Action": "sts:AssumeRole" } ] }

필수 권한이 포함된 공통 역할이 없는 경우 각 멤버 계정에서 최소한 해당 권한을 가진 역할을 만들어야 합니다. 또한 관리자 계정에서 역할을 만들어야 합니다.

역할을 생성하는 경우 다음을 수행해야 합니다.

  • 모든 계정에서 동일한 역할 이름을 사용합니다.

  • 위에 필요한 권한을 추가하거나(권장) AmazonDetectiveFullAccess 관리형 정책을 선택합니다.

  • 위에서 설명한 대로 역할 신뢰 관계 블록을 추가합니다.

이 프로세스를 자동화하려면 EnableDetective.yaml AWS CloudFormation 템플릿을 사용할 수 있습니다. 템플릿은 글로벌 리소스만 생성하므로 모든 리전에서 실행할 수 있습니다.

Python 스크립트를 위한 실행 환경 설정

EC2 인스턴스 또는 로컬 시스템에서 스크립트를 실행할 수 있습니다.

EC2 인스턴스 시작 및 구성

스크립트를 실행하는 한 가지 옵션은 EC2 인스턴스에서 스크립트를 실행하는 것입니다.

EC2 인스턴스를 시작하고 구성하려면
  1. 관리자 계정에서 EC2 인스턴스를 시작합니다. EC2 인스턴스를 시작하는 방법에 대한 자세한 내용은 Amazon 사용 설명서의 Amazon EC2 Linux 인스턴스 시작하기를 참조하세요. EC2

  2. 인스턴스에 인스턴스가 관리자 계정 AssumeRole 내에서 호출할 수 있는 권한이 있는 IAM 역할을 연결합니다.

    EnableDetective.yaml AWS CloudFormation 템플릿을 사용한 경우 이름이 인 프로파일이 있는 인스턴스 역할이 생성EnableDetective되었습니다.

    그렇지 않으면 인스턴스 역할 생성에 대한 자세한 내용은 EC2 콘솔을 사용하여 쉽게 교체 또는 기존 EC2 인스턴스에 IAM 역할 연결 블로그 게시물을 참조하세요.

  3. 필수 소프트웨어 설치:

    • APT: sudo apt-get -y install python3-pip python3 git

    • RPM: sudo yum -y install python3-pip python3 git

    • Boto(최소 버전 1.15): sudo pip install boto3

  4. 리포지토리를 EC2 인스턴스에 복제합니다.

    git clone https://github.com/aws-samples/amazon-detective-multiaccount-scripts.git

스크립트를 실행하도록 로컬 시스템 구성

로컬 시스템에서 스크립트를 실행할 수도 있습니다.

스크립트를 실행하도록 로컬 시스템 구성
  1. AssumeRole 호출 권한이 있는 관리자 계정의 로컬 시스템 보안 인증 정보를 설정했는지 확인합니다.

  2. 필수 소프트웨어 설치:

    • Python 3

    • Boto(최소 버전 1.15)

    • GitHub 스크립트

    플랫폼

    설치 지침

    Windows

    1. Python 3(https://www.python.org/downloads/windows/)을 설치합니다.

    2. 명령 프롬프트를 엽니다.

    3. Boto를 설치하려면 pip install boto3을 실행합니다.

    4. GitHub ()에서 스크립트 소스 코드를 다운로드합니다https://github.com/aws-samples/amazon-detective-multiaccount-scripts.

    Mac

    1. Python 3(https://www.python.org/downloads/mac-osx/)을 설치합니다.

    2. 명령 프롬프트를 엽니다.

    3. Boto를 설치하려면 pip install boto3을 실행합니다.

    4. ( GitHub )에서 스크립트 소스 코드를 다운로드합니다https://github.com/aws-samples/amazon-detective-multiaccount-scripts.

    Linux

    1. Python 3를 설치하려면 다음 중 하나를 실행합니다.

      • sudo apt-get -y install install python3-pip python3 git

      • sudo yum install git python

    2. Boto를 설치하려면 sudo pip install boto3을 실행합니다.

    3. 에서 스크립트 소스 코드를 복제합니다https://github.com/aws-samples/amazon-detective-multiaccount-scripts.

추가 또는 제거할 멤버 계정 .csv 목록 생성

동작 그래프에 추가하거나 동작 그래프에서 제거할 멤버 계정을 식별하려면 계정 목록이 포함된 .csv 파일을 제공합니다.

각 계정을 별도의 줄에 나열합니다. 각 멤버 계정 항목에는 AWS 계정 ID와 계정의 루트 사용자 이메일 주소가 포함됩니다.

다음 예를 참조하세요.

111122223333,srodriguez@example.com 444455556666,rroe@example.com

enableDetective.py 실행

EC2 인스턴스 또는 로컬 시스템에서 enableDetective.py 스크립트를 실행할 수 있습니다.

enableDetective.py를 실행하려면
  1. EC2 인스턴스 또는 로컬 시스템의 amazon-detective-multiaccount-scripts 디렉터리에 .csv 파일을 복사합니다.

  2. 디렉터리를 amazon-detective-multiaccount-scripts로 변경합니다.

  3. enableDetective.py스크립트 실행.

    enableDetective.py --master_account administratorAccountID --assume_role roleName --input_file inputFileName --tags tagValueList --enabled_regions regionList --disable_email

스크립트를 실행할 때 다음 값을 바꿉니다.

administratorAccountID

관리자 AWS 계정의 계정 ID입니다.

roleName

관리자 계정 및 각 멤버 계정에서 수임할 AWS 역할의 이름입니다.

inputFileName

관리자 계정의 동작 그래프에 추가할 멤버 계정 목록이 들어 있는 .csv 파일 이름.

tagValueList

(선택 사항) 새 동작 그래프에 할당할 쉼표로 구분된 태그 값 목록.

각 태그 값의 형식은 key=value입니다. 예:

--tags Department=Finance,Geo=Americas
regionList

(선택 사항) 관리자 계정의 동작 그래프에 멤버 계정을 추가할 리전의 쉼표로 구분된 목록입니다. 예:

--enabled_regions us-east-1,us-east-2,us-west-2

관리자 계정의 경우 리전에서 Detective를 아직 활성화하지 않았을 수 있습니다. 이 경우 스크립트는 Detective를 활성화하고 관리자 계정을 위한 새 동작 그래프를 생성합니다.

리전 목록을 제공하지 않는 경우 스크립트는 Detective가 지원하는 모든 리전에서 작동합니다.

--disable_email

(선택 사항) 포함된 경우 Detective는 멤버 계정에 초대 이메일을 보내지 않습니다.

disableDetective.py 실행

EC2 인스턴스 또는 로컬 시스템에서 disableDetective.py 스크립트를 실행할 수 있습니다.

disableDetective.py를 실행하려면
  1. .csv 파일을 amazon-detective-multiaccount-scripts 디렉터리로 복사합니다.

  2. .csv 파일을 사용하여 지정된 리전 목록에 대한 관리자 계정의 동작 그래프에서 나열된 멤버 계정을 삭제하려면 다음과 같이 disableDetective.py 스크립트를 실행합니다.

    disabledetective.py --master_account administratorAccountID --assume_role roleName --input_file inputFileName --disabled_regions regionList
  3. 모든 리전의 관리자 계정에 대해 Detective를 비활성화하려면 --delete-master 플래그를 사용하여 disableDetective.py 스크립트를 실행합니다.

    disabledetective.py --master_account administratorAccountID --assume_role roleName --input_file inputFileName --disabled_regions regionList --delete_master

스크립트를 실행할 때 다음 값을 바꿉니다.

administratorAccountID

관리자 AWS 계정의 계정 ID입니다.

roleName

관리자 계정 및 각 멤버 계정에서 수임할 AWS 역할의 이름입니다.

inputFileName

관리자 계정의 동작 그래프에서 제거할 멤버 계정 목록이 들어 있는 .csv 파일 이름.

Detective를 비활성화한 경우에도 .csv 파일을 제공해야 합니다.

regionList

(선택 사항) 다음 중 하나를 수행할 수 있는 쉼표로 구분된 리전 목록입니다.

  • 관리자 계정의 동작 그래프에서 멤버 계정을 제거합니다.

  • --delete-master 플래그가 포함된 경우 Detective를 비활성화합니다.

예:

--disabled_regions us-east-1,us-east-2,us-west-2

리전 목록을 제공하지 않는 경우 스크립트는 Detective가 지원하는 모든 리전에서 작동합니다.