AWS 계정에 액세스하는 방법

(Nicolo Marchesi) (2020 년 12 월 3 일)

AWS 계정에 액세스하는 방법

안녕하세요. 방금 첫 번째 AWS 계정을 생성했으며 AWS가 다음 큰 제품을 구축하기 위해 제공하는 모든 흥미로운 서비스와 기술에 빠져들기를 기다릴 수 없습니다. 하지만 잠시만 기다려주세요. 루트 계정 자격 증명으로 로그인 하시겠습니까? 아니면 새로운 사용자를 생성하는 것이 더 낫습니까? 아니면 역할을 사용 하시겠습니까?

잠시 시간을 늦추면 블로그 게시물이 끝날 때까지 가장 좋은 방법을 선택할 수있을 것입니다. AWS 계정에 안전하게 액세스하려면 .

하지만 다음 번에 다중 계정 전략을 다룰 예정이므로 단일 AWS 계정에 대한 액세스를 고려할 것입니다. . 뛰기 전에 걸어야 하죠?

계정 및 리소스

AWS와의 각 놀라운 여정은 계정과 리소스에서 시작되며 계정은 빈 상자와 같습니다.

계정에 넣을 수있는 것은 네트워크, 가상 머신, 컨테이너 등과 같은 AWS 서비스와 관련된 모든 것이 될 수 있습니다.

하지만 가장 중요한 부분은 기본적으로 어떤 계정도 리소스를 공유하지 않으므로 서로 다른 두 AWS 계정간에 아무것도 들어 오거나 나갈 수 없습니다. 작업 부하를 나누고 적합한 사람 만 모든 항목에 액세스하도록하는 데 유용합니다.

IAM — ID & 액세스 관리

각 계정 내에서 IAM은 해당 리소스에 대해 일부 작업을 수행 할 수있는 엔터티를 관리하여 계정 내부의 리소스를 보호합니다.

  • WHO — 어떤 ID
  • 무엇을 — 수행 할 수있는 작업
  • WHERE — 일부 리소스에서
  • 방법 — 몇 가지 조건을 충족했습니다.

이를 4W 지금은 처음 3 개에만 집중해야합니다.

처음에는 루트 사용자

AWS 계정을 만든 후 로그인 할 때 해당 계정 루트 사용자 .

다음과 같은 이유로 만들 수있는 다른 항목과 다릅니다.

  • 계정 등록시 생성
  • 귀하 계정을 만드는 데 사용한 이메일 주소와 비밀번호를 사용하여 로그인 할 수 있습니다.
  • 결제 정보에 액세스 할 수 있습니다.
  • 계정의 모든 리소스에 제한없이 액세스 할 수 있습니다.

이 사용자는 매우 중요하므로 가능한 한 최선의 방법으로 보호해야합니다. 모든 리소스를 사용하여 모든 작업을 수행 할 수있을뿐만 아니라 결제 정보를 볼 수 있기 때문에 스테로이드의 최고 관리자입니다.

따라서 가장 먼저해야 할 일은 다음과 같습니다.

  • 다단계 인증 (MFA)을 활성화하고 QR 코드를 안전한 장소에 저장합니다.
  • 프로그래밍 방식 액세스를 비활성화하려면이 사용자와 관련된 모든 액세스 키를 삭제합니다 (어쨌든 필요하지 않습니다!)

다음으로 할 일은 지금부터이 계정에 액세스하는 방법을 결정하는 것입니다.

AWS 내부에서

지금은 타사에 의존하지 않고 AWS가 제공하는 기능에 초점을 맞추겠습니다. 이는 사용자, 그룹 및 역할의 세 가지 IAM 구성 요소를 마스터해야하기 때문에이 단일 계정에 집중할 때 특히 유용합니다.

사용자

루트 사용자를 기억하십니까? IAM 사용자는 동일한 유형의 엔티티이지만 루트 사용자와는 다릅니다. 기본 결제 권한과 관리자 액세스 권한이 없습니다 (제공하지 않는 한 … 권한을 부여하지 않아야 함).

사용자와 함께 AWS 웹 콘솔에 로그인 할 수있는 엔터티를 생성 할 수 있습니다. 또는 고정되어 시간이 지나도 변경되지 않는 자격 증명 (액세스 키 및 보안 액세스 키) 집합을 통한 프로그래밍 방식 액세스. AWS CodeCommit 용 SSH / HTTPS 키 또는 Amazon Keyspaces 용 자격 증명 (Apache Cassandra 용)

  • 웹 콘솔 용 로그인 자격 증명
  • 액세스 및 보안 키 자격 증명과 함께 API, CLI 및 SDK에 대한 프로그래밍 방식 액세스 용
  • AWS CodeCommit 용 SSH / HTTPS 키
  • Amazon Keyspaces 용 자격 증명 (Apache Cassandra 용)

세분화 된 액세스

IAM 사용자가 원하는 행동 방식에 따라 하나 이상의 액세스 키를 활성화하는 것은 전적으로 가능합니다.예 :

  • 웹 콘솔에서 분석 만 확인하고 프로그래밍 방식 액세스는 필요하지 않은 데이터 분석가
  • 웹 콘솔에서 작업을 수행해야하는 서버리스 DevOps 콘솔 및 CLI를 사용하여 일부 리소스를 제공하려면 이러한 두 가지 액세스가 모두 필요합니다.
  • 단일 리포지토리에서 작업하고 AWS 리소스와 상호 작용할 필요가없는 개발자는 AWS CodeCommit 용 SSH / HTTPS 키를 갖게됩니다.

공유 IAM 사용자 자격 증명 는 절대 안됩니다. 자격 증명과 거버넌스를 잃고 보안 위협에 노출되는 첫 번째 단계이기 때문입니다.

그렇지 않습니다. 전체 비트 코인 채굴자를 위해 프로덕션 계정을 완전히 지우고 싶습니까?

보안 강화

AWS IAM 사용자의 또 다른 멋진 기능은 비밀번호를 적용 할 수 있다는 것입니다. 복잡성 (기본적으로 8–128 chara 사이의 길이로 매우 높음) cters, 최소 3 개의 특수 문자, AWS 계정 이름 또는 이메일 주소와 동일하지 않아야 함) 및 암호 만료 시간을 사용하여 특정 시간이 지나면 사용자가 암호를 변경할 수 있습니다.

맨 위로 그 중 다양한 장치에서 MFA를 활성화 할 수 있습니다.

  • 모바일 장치 또는 컴퓨터에 인증 앱이 설치된 가상 MFA 장치
  • YubiKey와 같은 U2F 보안 키 또는 기타 호환 U2F 디바이스
  • Gemalto 토큰과 같은 다른 하드웨어 MFA 디바이스

일반적으로 각 IAM 사용자에 대한 특정 수단을 가질 수 있으므로 세분화 된 접근 방식이 있습니다. .

사용시기

사용자가 매우 적은 경우 ( 1–5) 각각에 연결된 정확한 권한을 통해 IAM 사용자는 초기 구성 및 콘솔 액세스에 시간을 절약 할 수 있습니다. 정적 자격 증명에주의하십시오. 상당한 보안 문제이므로 매우주의하여 처리하십시오. 또는 AWS CLI get-session-token을 사용하여 정적 자격 증명에서 임시 자격 증명을 생성합니다.

그룹

엔티티 자체는 아니지만 IAM 그룹은 IAM 사용자를 하나로 묶을 수 있습니다. 사용자 그룹에 동일한 권한 집합을 부여합니다. 이렇게하면 IAM 사용자의 대략적인 가장자리가 약간 부드러워 지지만 전반적으로 IAM 사용자에게 보았던 것과 동일한 사항이 적용됩니다.

유념해야 할 점은 IAM 사용자가 연결되어있는 동안에도 개인 정책을 보유 할 수 있다는 것입니다. 결과 권한은 그룹과 개인 권한의 병합과 동일합니다.

이것은 일반적인 워크 플로보다 예외입니다. 개별 권한이 너무 많으면 유지 관리 할 수없는 정책이 많이 생성되고 계정의 권한에 대한 전반적인 개요가 손실됩니다.

사용시기

몇 명의 사용자 (5 ~ 15 명), IAM 그룹은 각 IAM 사용자를 관리하고 구성하는 번거 로움을 줄일 수 있습니다. 그러나 IAM 사용자와 동일한 고려 사항이 적용되므로 단일 계정으로 작업하지 않는 한 가능하면 피하십시오.

역할

그리고 여기에서 AWS 역할을 살펴 보겠습니다. IAM 역할은 권한을 가질 수 있으며 (사용자와 마찬가지로) 콘솔에 로그인 할 수 있습니다 (다시 사용자처럼 …). 한 사람과 고유하게 연결되는 대신 필요한 사람은 누구나 역할을 수임 할 수 있습니다.

따라서 사람이 수임하려는 역할의 모자 를 착용하고

IAM 역할 로고 훨씬 더 이해가 되셨죠?

임시 자격 증명

IAM 사용자와 다른 주요 차이점은 IAM 역할에는 정적 자격 증명이 없다는 것입니다. 누군가가 역할을 맡으면 임시 자격 증명 집합이 생성되고 제공됩니다. 이러한 자격 증명의 지속 시간을 사용자 지정하고 필요한 경우 액세스를 추가로 제한 할 수 있습니다.

시간은 900 초 (15 분)에서 최대 12 시간까지 설정할 수 있지만 제 생각에는 1 시간- 긴 만료는 보안과 성능 사이의 가장 좋은 절충안입니다.

CloudTrail 모니터링

어떤 사람들은 무엇을 감사 할 수 없다고 생각하기 때문에 역할을 사용하지 않기 때문에 이것을 언급하겠습니다. 역할이 할 수 있습니다. 진실은 할 수 있고 그래야한다는 것입니다. Cloudtrail 모니터링을 활성화하면 계정 내에서 수행 된 모든 작업을 볼 수 있으므로 상황을 항상 알 수 있습니다.

교차 계정

이 내용은 다른 블로그에서 자세히 설명합니다. 단일 계정에 초점을 맞추고 있지만 지금은 IAM 역할을 사용하여 다른 IAM 역할 또는 IAM 사용자에게 액세스 권한을 부여 할 수 있다는 점에 유의하세요.

이것은 매우 유용합니다.

Entry-point 필요

이제 단점이 있습니다. 안타깝게도 콘솔에 대한 직접 액세스 권한과 IAM 역할에 대한 임시 자격 증명을 부여 할 수 없습니다. 먼저, IAM 역할에 대한 액세스 권한을 부여하려면 사용자 또는 연동 역할을 설정해야합니다 (자세한 내용은 몇 단락에서 설명).

사용시기

항상. IAM 역할이 정적 자격 증명과 연결되어 있지 않으므로 클라우드에 액세스하는 가장 좋은 방법입니다. IAM 역할 작업을 모니터링하고 MFA에서도 보안을 강화하는 기능과 결합하십시오. 유일한 단점은 구성이 조금 더 많지만 제 생각에는 비용이 저렴하다는 것입니다.

AWS 외부에서

이제 우리가 할 수있는 일을 살펴 보겠습니다. 기업 아이덴티티 분야로 가십시오. ID 공급자를 ID 소스로 사용하고 회사 이메일 및 비밀번호로 로그인하는 것을 의미합니다.

연맹

하지만 연맹이란 무엇을 의미합니까? 한쪽에는 ID 공급자가 있습니다. 이러한 시스템에는 특정 페더레이션 프로토콜을 통해 통신 할 수있는 일부 소프트웨어 및 사용자 디렉터리가 포함되어 있습니다. 사용자의 모든 데이터는 ID 로 상주합니다.

다른쪽에는 AWS가 있습니다. ID 소비자 로 계정. 저장하지 않고 신원에 대한 참조를 유지합니다. 이 측면에서는 일반적으로 훨씬 더 세분화 된 권한 수준이 있습니다 (IAM 감사합니다!).

따라서 연맹 는 ID 소비자가 ID 공급자의 ID를 참조 할 수있게하는 신뢰 관계입니다.

SAML Federation

SAML에 대한 가장 일반적인 정의입니다. )는 당사자간에 인증 및 권한 부여 데이터를 교환하기위한 개방형 표준입니다. 즉, 자격 증명을 사용하여 AWS에 로그인하고 역할을 맡아 임시 자격 증명을 얻을 수도 있습니다. 거의 모든 ID 제공 업체에 적용 할 수있는 일반적인 접근 방식입니다.

신뢰 관계

두 당사자 간의 연합을 설정하려면 IAM ID 제공 업체 . 이는 실제 아이덴티티 공급자를 나타내며 두 ​​당사자가 통신 할 수있는 공유 비밀을 보유하기 때문에 필요합니다. 또한 사용자가 맡길 원하는 각 역할 내에서 IAM과 관련된 엔터티를 허용하는 신뢰 정책 을 정의합니다. 역할을 맡을 ID 제공 업체 :

맞춤 관리

문제는 처음에는 연합을 직접 관리하는 것이 어렵고 시간이 많이 소요될 수 있다는 것입니다. 잘 이해해야 할 몇 가지 개념이 있으며이를 수행하려면 여러 항목, 관계 및 사용자 지정 항목을 만들어야합니다. 아이디어를 얻으려면 여기 에서 전체 자습서 예제를 찾을 수 있습니다.

사용시기

일반적으로 이것은 거의 모든 경우에 작동하는 훌륭하고 검증 된 접근 방식입니다. 하지만 사용자 지정 ID 관리는 경험이없는 사람들에게는 어렵고 시간이 많이 소요될 수 있습니다.

보안 또는 규정 준수를 위해이를 직접 관리하려는 경우 일반적인 사용 사례가 있습니다. AWS 조직에 대한 액세스 권한이 없거나 AWS SSO가 아직 자격 증명 공급자를 지원하지 않습니다.

AWS SSO

이 서비스는 클라우드 기반 및 관리 형 SSO 서비스입니다. 자격 증명 공급자를 AWS 계정에 연결합니다.

AWS 조직

AWS SSO를 설정하려면 AWS Organizations를 구성해야하며 지금은 다음과 같이 생각할 수 있습니다. 여러 AWS 계정을 관리합니다. 간략히 설명하려면 AWS 조직을 설정하려면 광범위한 권한 (즉, 루트 사용자)이 필요하다는 점을 알아야합니다.

내부 ID 저장소

기본적으로 AWS SSO는 디렉터리를 제공합니다. 사용자 정보 및 자격 증명을 저장하여 아이덴티티 공급자로 직접 제공합니다. 아직 ID 제공 업체가 없거나 설정 문제로 가고 싶지 않은 경우 좋습니다.

외부 ID 저장소

하지만 조직에서 이미 일부를 사용하고 있다고 가정 해 보겠습니다. Microsoft Active Directory와 같은 사용자 디렉토리. 이 경우 AWS SSO에 연결할 수 있으므로 자동 프로비저닝 을 사용하여 두 개의 개별 디렉터리를 유지할 필요가 없습니다.

p>

그러나이 기능은 제한된 ID 공급자 집합에서만 지원됩니다.

다단계 인증

AWS SSO를 사용하면 서비스 내에서 사용자를 위해 MFA 디바이스를 구성 할 수 있습니다. 현재 Google Authenticator와 같은 Authenticator 앱과 Yubikey와 같은 보안 키를 지원합니다. 내부 솔루션은 흥미롭지 만 외부 ID 공급자 측에서 설정하면 MFA 지원이 부족합니다.

사용시기

AWS에서 제안하는 표준이며 진행 방법이 확실하지 않은 경우 기본 방법이 될 수 있습니다. 그래도이 솔루션을 최대한 활용하는 데 필요한 몇 가지 요구 사항이 있습니다.

이미 AWS Organization, 를 설정했습니다. div> 및 루트 계정에 대한 액세스 권한이 있습니다. AWS SSO 내에 자격 증명을 유지하거나 자동 프로비저닝이 지원하는 자격 증명 공급자를 사용하려고합니다.

최종 참고 사항

그래서 단일 AWS 계정에 액세스 할 수있는 기반을 마련했습니다. 이제 특정 사용 사례에 가장 적합한 방법을 선택할 수있는 요소가 있어야합니다. 이 정보를 사용하여 다음 블로그 게시물에서 다중 계정 관리 및 AWS Organizations에 대한 기초를 다룰 것입니다.

Leapp

마지막 참고로 모든 사람에게 다음과 같은 도구를 사용하도록 강력히 권장합니다. AWS 계정에 연결하는 데 필요한 모든 데이터를 저장할 수 있습니다. 저희 팀과 저는 이러한 모든 사용 사례를 지원하는 오픈 소스 도구를 개발 중이므로 언제든지 확인하십시오.

Noovolari / leapp

Leapp은 클라우드에 액세스 할 수있는 일상적인 동반자입니다. Cloud Providers API, CLI 및 SDK와 함께 작동하도록 설계되었습니다. 바로…

github.com

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다