본문 바로가기

Server Infra/AWS

AWS Organization

728x90

참고 링크


AWS Resource Access Manager(AWS RAM)을 사용하면 소유하고있는 AWS리소스를 다른 AWS계정과 공유 할 수 있습니다.

AWS Organizations에서 신뢰할 수있는 액세스를 활성화하려면 :

  1. AWS RAM CLI에서 enable-sharing-with-aws-organizations 명령을 사용합니다 .
  2. 신뢰할 수있는 액세스가 활성화 된 경우 계정에서 생성 할 수있는 IAM 서비스 연결 역할의 이름 : AWSResourceAccessManagerServiceRolePolicy.

기본 개념


관리 계정이란?

  • 조직을 생성하는데 사용하는 Root AWS Account. 다른 계정을 Organization으로 초대하고 제거하며 관리 루트, OU와 계정 같은 엔티티 정책을 연결 관리할 수 있습니다.
  • 관리 계정은 지급 계정의 역할을 가지고 있으며 관리 그룹 내 모든 계정에서 발생하는 요금 지급을 담당합니다.
  • 관리계정은 다른 AWS 계정으로 변경할 수 없습니다

멤버 계정이란?

  • 관리 계정이 아닌 Organzation에 속한 모든 계정
  • 하나의 AWS 계정은 한 번에 하나의 조직 멤버만 될 수 있습니다.
  • 조직을 변경 하는 경우 계정을 독립형으로 만든 후에 다른 조직에 합류하도록 초대할 수 있습니다.

관리 루트란?

  • 관리 계정에 포함되며 AWS 계정을 구성하는 시작점 입니다.
  • Root아래 OU를 논리적인 그룹으로 생성하여 멤버계정을 그룹화 할 수 있습니다

조직 단위(OU)란

  • Organzation 그룹 내 AWS 계정 그룹 단위 입니다.
  • OU내 OU가 속할 수 있습니다
  • OU는 조직의 계정 하위 집합에 동일한 제어 항목을 적용해야 하는 경우 유용합니다.
  • OU는 최대 5개의 레벨로 구성할 수 있습니다.

정책이란?

  • 백업 정책 - 지정된 케이던스에서 AWS 백업을 요구합니다. AWS Backup과 연계하여 계획을 구성하고 모든 계정에 자동 적용이 가능합니다.
  • 태그 정책 - 태그 키 및 허용되는 값을 정의합니다. 태그 키와 값의 기본 대소문자를 처리하고 일관적으로 관리할 수 있습니다.
  • SCP - 조직 내 다른 계정에서 사용할 수 있는 AWS서비스 작업 정의
  • AI 서비스 정책 - AI 서비스가 콘텐츠를 저장 또는 사용 하는 방식 제어

역할과 권한

사용자와 역할은 자신이나 그룹에 연결된 IAM 권한 정책을 사용하여 여전히 권한을 부여 받아야합니다. SCP는 이러한 정책에 의해 부여 된 권한을 필터링하며 사용자는 해당 SCP가 허용하지 않는 작업을 수행 할 수 없습니다. SCP가 허용하는 작업은 하나 이상의 IAM 권한 정책에 의해 사용자 또는 역할에 부여 된 경우 사용할 수 있습니다.

💡 SCP가 적용된 AWS 계정 내 보안 주체(계정 루트, IAM 사용자 및 IAM 역할)에 부여된 실질적인 권한은 SCP에서 허용한 권한과 IAM 권한 정책에서 보안 주체에 부여한 권한의 교집합입니다. 예를 들어 IAM 사용자가 "Allow": "ec2: " 및 "Allow": "sqs: " 권한을 가지고 있고 계정에 연결된 SCP가 "Allow": "ec2:* " and "Allow": "s3:* "인 경우, IAM 사용자의 최종 권한은 "Allow": "ec2:* "입니다. 이 보안 주체는 Amazon SQS 작업도 수행할 수 없고(SCP에서 허용하지 않음) S3 작업도 수행할 수 없습니다(IAM 정책에서 허용하지 않음).

SCP를 루트, OU에 연결하거나 계정에 직접 연결하면 지정된 계정에 영향을 미치는 모든 정책이 IAM 권한 정책을 제어하는 동일한 규칙을 사용하여 함께 평가됩니다.

  • Deny SCP에 명시적인 작업이  있는 경우 영향을받는 계정의 사용자 또는 역할에 위임 할 수 없습니다. 명시 적  Deny 진술은 다른  Allow 정책을 무시합니다.
  • Allow SCP에 명시적인 작업  (예 : 기본 "*"SCP 또는 특정 서비스 또는 작업을 호출하는 다른 SCP에 의해)은 영향을받는 계정의 사용자 및 역할에 위임 될 수 있습니다.
  • SCP에서 명시 적으로 허용하지 않는 모든 작업은 암시 적으로 거부되며 영향을받는 계정의 사용자 또는 역할에 위임 할 수 없습니다.

💡 기본적으로 SCP에는 FullAWSAccess권한이 명시 되어있어며 모든 루트, OU 및 계정에 연결됩니다.

따라서 새 조직에서는 SCP 생성 또는 조작을 시작할 때까지 기존의 모든 IAM 권한이 그대로 계속 작동합니다. 새 SCP 또는 수정 된 SCP를 계정이 포함 된 루트 또는 OU에 적용하는 즉시 해당 계정에서 사용자가 가진 권한이 SCP에 의해 필터링됩니다. 작업에 사용되던 권한은 이제 지정된 계정까지 계층 구조의 모든 수준에서 SCP가 허용하지 않는 경우 거부 될 수 있습니다.

값 설정 연산자


다음 값 설정 연산자를 사용하여 정책이 상위 정책과 상호 작용하는 방식을 제어할 수 있습니다.

  • @@assign–덮어쓰기 상속된 정책 설정을 지정된 설정으로 지정합니다. 지정된 설정이 상속되지 않은 경우 이 연산자는 해당 설정을 유효 정책에 추가합니다. 이 연산자는 모든 유형의 정책 설정에 적용할 수 있습니다.
    • 단일 값 설정의 경우 이 연산자는 상속된 값을 지정된 값으로 바꿉니다.
    • 다중 값 설정(JSON 배열)의 경우 이 연산자는 상속된 값을 모두 제거하고 이 정책에 지정된 값으로 바꿉니다.
  • @@append–추가 상속된 설정에 지정된 설정을 제거하지 않고 상속됩니다. 지정된 설정이 상속되지 않은 경우 이 연산자는 해당 설정을 유효 정책에 추가합니다. 이 연산자는 다중 값 설정에서만 사용할 수 있습니다.
    • 이 연산자는 상속된 배열의 값에 지정된 값을 추가합니다.
  • @@remove–제거 유효 정책에서 지정된 상속된 설정 (있는 경우) 을 지정합니다. 이 연산자는 다중 값 설정에서만 사용할 수 있습니다.
    • 이 연산자는 상위 정책에서 상속된 값 배열에서 지정된 값만 제거합니다. 다른 값은 배열에 계속 존재할 수 있으며 하위 정책이 상속할 수 있습니다.

권한 부여 과정


보안 주체가 AWS로 요청을 보내 보안 주체의 엔터티와 동일한 계정에 있는 리소스에 액세스한다고 가정합니다. AWS 시행 코드는 요청의 허용 또는 거부 여부를 결정합니다. AWS에서는 요청 컨텍스트에 적용되는 모든 정책을 수집합니다. 다음은 단일 계정에 적용되는 이러한 정책에 대한 AWS 평가 로직을 간략하게 요약한 것입니다.

  • 기본적으로 모든 요청이 묵시적으로 거부됩니다. 또는 기본적으로 AWS 계정 루트 사용자에 모든 권한이 부여됩니다.
  • 자격 증명 기반 또는 리소스 기반 정책에 포함된 명시적 허용은 이 기본 작동을 재정의합니다.
  • 권한 경계, 조직 SCP 또는 세션 정책이 있는 경우 이러한 정책 유형이 명시적 거부로 허용을 재정의할 수도 있습니다.
  • 어떠한 정책의 명시적 거부는 허용을 무시합니다.

  1. 거부 평가 – 기본적으로 모든 요청이 거부됩니다. 이를 묵시적 거부라고 합니다. AWS 적용 코드는 해당 요청에 적용될 수 있는 계정 내의 모든 정책을 평가합니다. 여기에는 AWS Organizations SCP, 리소스 기반 정책, IAM 권한 경계, 역할 세션 정책 및 자격 증명 기반 정책이 포함됩니다. 이런 모든 정책에서 적용 코드는 해당 요청에 적용되는 Deny 설명문을 찾습니다. 이를 명시적 거부라고 합니다. 적용되는 명시적 거부가 하나라도 발견되면 이 코드는 최종 거부 결정을 반환합니다. 명시적 거부가 없으면 코드 실행이 계속됩니다.
  2. 조직 SCP – 그 다음에는 요청에 적용되는 AWS Organizations 서비스 제어 정책(SCP)을 평가합니다. SCP는 SCP가 연결된 계정의 보안 주체에 적용됩니다. 적용 가능한 Allow 문이 SCP에 없는 경우 요청이 묵시적으로 거부됩니다. 적용 코드가 최종 거부 결정을 반환합니다. SCP가 없거나 요청한 작업이 SCP에서 허용된 경우 코드 실행이 계속됩니다.
  3. 리소스 기반 정책 – 보안 주체에 대해 요청한 작업의 수행을 허용하는 리소스 기반 정책이 요청한 리소스에 지정된 경우 적용 코드는 최종 허용 결정을 반환합니다. 리소스 기반 정책이 없거나 이 정책에 Allow 문이 포함되지 않은 경우 코드 실행이 계속됩니다.
  4. IAM 권한 경계 – 다음에는 적용 코드가 보안 주체에 사용되는 IAM 엔터티에 권한 경계가 지정되어 있는지 여부를 확인합니다. 권한 경계를 설정하는 데 사용되는 정책에서 요청한 작업을 허용하지 않는 경우 요청이 묵시적으로 거부됩니다. 적용 코드가 최종 거부 결정을 반환합니다. 권한 경계가 없거나 요청한 작업이 권한 경계에서 허용된 경우 코드 실행이 계속됩니다.
  5. 세션 정책 – 그 다음, 적용 코드는 세션 정책을 전달하여 보안 주체에서 위임된 세션을 사용 중인지 확인합니다. AWS CLI 또는 AWS API를 사용하는 동안 세션 정책을 전달하여 역할이나 연합된 사용자에 대한 임시 자격 증명을 가져올 수 있습니다. 세션 정책이 있지만 요청한 작업이 세션 정책에서 허용되지 않는 경우 해당 요청이 묵시적으로 거부됩니다. 적용 코드가 최종 거부 결정을 반환합니다. 세션 정책이 없거나 요청한 작업이 세션 정책에서 허용된 경우 코드 실행이 계속됩니다.
  6. 자격 증명 기반 정책 – 그 다음, 적용 코드는 보안 주체에 대한 자격 증명 기반 정책을 확인합니다. IAM 사용자의 경우 이러한 정책에는 사용자 정책과 사용자가 속한 그룹의 정책이 포함됩니다. 적용 가능한 자격 증명 기반 정책에 요청한 작업을 허용하는 설명문이 있는 경우 적용 코드는 최종 허용 결정을 반환합니다. 요청한 작업을 허용하는 설명문이 없는 경우 해당 요청이 묵시적으로 거부되고, 적용 코드는 최종 거부 결정을 반환합니다.
  7. 오류 – AWS 적용 코드를 평가하는 도중 오류가 발생할 경우 코드는 예외를 생성한 후 닫힙니다.
728x90

'Server Infra > AWS' 카테고리의 다른 글

AWS Elasticsearch Service  (0) 2022.01.05
Lambda란?  (1) 2022.01.05
AWS DevOps Engineer - Professional 취득 후기  (0) 2022.01.05
AWS Developer – Associate 취득 후기  (0) 2022.01.05
AWS SysOps Administrator – Associate 취득 후기  (2) 2022.01.05