AWS Organizations를 사용하여 조직에 대한 액세스 권한 관리
조직 내 루트, OU, 계정, 정책을 포함한 모든 AWS 리소스는 AWS 계정이 소유하며, 리소스 생성 및 액세스 권한은 권한 정책이 관장합니다. 조직의 경우, 조직의 관리 계정이 모든 리소스를 소유합니다. 계정 관리자는 권한 정책을 IAM 자격 증명(사용자, 그룹 및 역할)에 연결해 AWS 리소스에 대한 액세스를 제어할 수 있습니다.
참고
계정 관리자(또는 관리자 사용자)는 관리자 권한이 있는 사용자입니다. 자세한 내용은 IAM 사용 설명서의 IAM의 보안 모범 사례를 참조하십시오.
권한을 부여하려면 권한을 부여 받을 사용자, 권한 대상이 되는 리소스, 해당 리소스에 허용되는 특정 작업을 결정합니다.
기본적으로 IAM 사용자, 그룹 및 역할에는 어떠한 권한도 없습니다. 조직의 관리 계정에 속한 관리자는 관리 업무를 수행하거나 관리 계정의 다른 IAM 사용자나 역할에 관리 권한을 위임할 수 있습니다. 이렇게 하려면 IAM 권한 정책을 IAM 사용자, 그룹 또는 역할에 연결해야 합니다. 기본적으로 사용자는 어떤 권한도 가지지 않습니다. 이를 묵시적 거부라고 합니다. 이 정책은 사용자가 수행할 수 있는 작업과 사용자가 작업을 수행할 수 있는 리소스를 지정하는 명시적 허용으로 묵시적 거부를 무시합니다. 권한을 역할에 부여하면, 해당 역할은 조직 내 다른 계정 사용자가 맡을 수 있습니다.
AWS Organizations 리소스 및 작업
이 단원에서는 AWS Organizations 개념이 IAM의 대응 개념에 매핑되는 방식을 설명합니다.
리소스
AWS Organizations에서 다음 모든 리소스에 대한 액세스를 제어할 수 있습니다.
-
조직의 계층적 구조를 구성하는 루트 및 OU
-
조직의 멤버가 되는 계정
-
조직 내 다음 개체에 연결하는 정책
-
조직 상태를 변경할 때 사용하는 핸드셰이크
각 리소스에는 관련된 고유 Amazon 리소스 이름(ARN)이 있습니다. IAM 권한 정책의 Resource
요소에 ARN을 지정하면 리소스에 대한 액세스를 제어할 수 있습니다. AWS Organizations에서 사용되는 리소스에 대한 ARN 형식의 전체 목록은 서비스 권한 부여 참조의 AWS Organizations에서 정의한 리소스 유형을 참조하세요.
운영
AWS는 조직 내 리소스를 다루는 다양한 작업을 제공합니다. 이를 통해 리소스 콘텐츠 생성, 나열, 수정, 액세스 및 리소스 삭제 같은 일을 할 수 있습니다. 대부분의 작업을 IAM 정책의 Action
요소에 참조해 해당 작업을 사용하는 사람을 제어할 수 있습니다. IAM 정책에서 권한으로 사용할 수 있는 AWS Organizations 작업 목록은 서비스 권한 부여 참조의 Organizations에서 정의한 작업을 참조하세요.
Action
과 Resource
를 단일 권한 정책 Statement
로 결합하면, 특정 작업 모음을 사용할 수 있는 리소스를 정확하게 제어할 수 있습니다.
조건 키
AWS는 특정 작업에 대한 보다 세부적인 제어를 제공하기 위해 쿼리할 수 있는 조건 키를 제공합니다. IAM 정책의 Condition
요소에서 이러한 조건 키를 참조하여 문을 일치로 간주하기 위해 충족해야 하는 추가적인 상황을 지정할 수 있습니다.
다음은 AWS Organizations에 특히 유용한 조건 키입니다.
-
aws:PrincipalOrgID
- 리소스 기반 정책의Principal
요소 지정을 간소화합니다. 이 전역 키는 조직 내 모든 AWS 계정의 계정 ID를 전부 나열하는 대안을 제공합니다. 조직의 멤버인 모든 계정을 나열하는 대신Condition
요소에 조직 ID를 지정할 수 있습니다.참고
이 전역 조건은 조직의 관리 계정에도 적용됩니다.
자세한 내용은 IAM 사용 설명서의 AWS 전역 조건 컨텍스트 키에서
PrincipalOrgID
에 대한 설명을 참조하세요. -
aws:PrincipalOrgPaths
- 이 조건 키를 사용하여 특정 조직 루트, OU 또는 해당 하위 항목의 멤버를 일치시킵니다. 요청을 수행하는 보안 주체(루트, IAM 사용자 또는 역할)가 지정된 조직 경로에 있는 경우aws:PrincipalOrgPaths
조건 키는 true를 반환합니다. 경로는 AWS Organizations 엔터티 구조의 텍스트 표현입니다. 경로에 대한 자세한 내용은 IAM 사용 설명서의 AWS Organizations 엔터티 경로 이해를 참조하세요. 이 조건 키 사용에 대한 자세한 내용은 IAM 사용 설명서의 aws:PrincipalOrgPaths를 참조하세요.예를 들어, 다음 조건 요소는 동일한 조직에 있는 두 OU 중 하나의 멤버에 대해 일치합니다.
"Condition": { "ForAnyValue:StringLike": { "aws:PrincipalOrgPaths": [ "o-a1b2c3d4e5/r-f6g7h8i9j0example/ou-def0-awsbbbbb/", "o-a1b2c3d4e5/r-f6g7h8i9j0example/ou-jkl0-awsddddd/" ] } }
-
organizations:PolicyType
– 이 조건 키를 사용하여 Organizations 정책 관련 API 작업이 특정 유형의 Organizations 정책에서만 동작하도록 제한할 수 있습니다. 이 조건 키는 Organizations 정책과 상호 작용하는 작업이 포함된 모든 정책 문에 적용할 수 있습니다.이 조건 키에는 다음 값을 사용할 수 있습니다.
-
SERVICE_CONTROL_POLICY
-
BACKUP_POLICY
-
TAG_POLICY
-
CHATBOT_POLICY
-
AISERVICES_OPT_OUT_POLICY
예를 들어 다음 예제 정책은 사용자가 모든 Organizations 작업을 수행할 수 있도록 허용합니다. 그러나 사용자가 정책을 인수하는 작업을 수행하는 경우 지정된 정책이 태그 지정 정책인 경우에만 작업이 허용됩니다. 사용자가 다른 유형의 정책을 지정하면 작업이 실패합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "IfTaggingAPIThenAllowOnOnlyTaggingPolicies", "Effect": "Allow", "Action": "organizations:*", "Resource": "*", "Condition": { "StringLikeIfExists": { "organizations:PolicyType": [ "TAG_POLICY" ] } } } ] }
-
-
organizations:ServicePrincipal
– EnableAWSServiceAccess 또는 DisableAWSServiceAccess 작업을 사용하여 다른 AWS 서비스와의 신뢰할 수 있는 액세스를 활성화하거나 비활성화하는 경우 조건으로 사용할 수 있습니다.organizations:ServicePrincipal
을 사용하여 승인된 서비스 보안 주체 이름의 목록에 대하여 이런 작업 요청을 제한할 수 있습니다.예를 들어, 다음 정책은 AWS Organizations를 사용하여 신뢰할 수 있는 액세스를 활성화하고 비활성화할 때 사용자가 AWS Firewall Manager만 지정하도록 허용합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowOnlyAWSFirewallIntegration", "Effect": "Allow", "Action": [ "organizations:EnableAWSServiceAccess", "organizations:DisableAWSServiceAccess" ], "Resource": "*", "Condition": { "StringLikeIfExists": { "organizations:ServicePrincipal": [ "fms.amazonaws.com" ] } } } ] }
IAM 정책에서 권한으로 사용할 수 있는 AWS Organizations별 조건 키 전체 목록은 서비스 권한 부여 참조의 AWS Organizations의 조건 컨텍스트 키를 참조하세요.
리소스 소유권 이해
AWS 계정은 리소스를 누가 생성했는지와 상관없이 계정에서 생성된 리소스를 소유합니다. 특히, 리소스 소유자는 리소스 생성 요청을 인증하는 보안 주체 엔터티(즉, 루트 사용자, IAM 사용자 또는 IAM 역할)의 AWS 계정입니다. 조직의 경우 이는 언제나 관리 계정입니다. 멤버 계정에서 조직 리소스를 생성 또는 액세스하는 작업은 대부분 호출할 수 없습니다. 다음 예에서는 이러한 작동 방식을 설명합니다.
-
관리 계정의 루트 계정 자격 증명을 사용하여 OU를 생성하는 경우, 관리 계정이 리소스 소유자가 됩니다. (AWS Organizations에서 리소스는 OU입니다.)
-
관리 계정에서 IAM 사용자를 만들고 사용자에 OU 생성 권한을 부여하면, 해당 사용자는 OU를 만들 수 있습니다. 하지만 사용자가 속한 관리 계정이 OU 리소스를 소유합니다.
-
관리 계정에서 OU를 생성할 권한이 있는 IAM 역할을 만드는 경우, 해당 역할을 담당할 수 있는 사람은 누구나 OU를 만들 수 있습니다. 역할(역할을 담당하는 사용자가 아님)이 속하게 될 관리 계정이 OU 리소스를 소유합니다.
리소스 액세스 관리
권한 정책은 누가 무엇에 액세스 할 수 있는지를 나타냅니다. 다음 섹션에서는 권한 정책을 만드는 데 사용 가능한 옵션에 대해 설명합니다.
참고
이 섹션에서는 AWS Organizations의 맥락에서 IAM을 사용하는 방법에 대해 설명하며, IAM 서비스에 대한 자세한 정보는 다루지 않습니다. IAM 설명서 전체 내용은 IAM 사용 설명서를 참조하세요. IAM 정책 구문과 설명에 대한 자세한 내용은 IAM 사용 설명서의 IAM JSON 정책 참조를 참조하세요.
IAM 자격 증명에 연결된 정책을 자격 증명 기반 정책(IAM 정책)이라고 합니다. 리소스에 연결된 정책은 리소스 기반 정책이라고 합니다. AWS Organizations는 자격 증명 기반 정책(IAM 정책)만 지원합니다.
자격 증명 기반 권한 정책(IAM 정책)
IAM 자격 증명에 정책을 연결하여 해당 자격 증명으로 AWS 리소스에 대한 작업을 수행하도록 허용할 수 있습니다. 예를 들어 다음을 수행할 수 있습니다.
-
계정 내 사용자 또는 그룹에 권한 정책 연결 – 서비스 제어 정책(SCP)이나 OU 같은 AWS Organizations 리소스를 생성할 권한을 사용자에게 부여하려면, 권한 정책을 특정 사용자 또는 해당 사용자가 속한 그룹에 연결하면 됩니다. 사용자나 그룹은 조직의 관리 계정에 있어야 합니다.
-
역할에 권한 정책 연결(교차 계정 권한 부여) – 자격 증명 기반 권한 정책을 IAM 역할에 연결하여 조직에 대한 교차 계정 액세스를 부여할 수 있습니다. 예를 들어 관리 계정 관리자는 다음과 같이 멤버 계정 사용자에게 교차 계정 권한을 부여하는 역할을 만들 수 있습니다.
-
관리 계정 관리자는 IAM 역할을 생성하고 조직의 리소스에 권한을 부여하는 역할에 권한 정책을 연결합니다.
-
관리 계정 관리자는 멤버 계정 ID를 역할 수임 가능
Principal
로 식별하는 역할에 신뢰 정책을 연결합니다. -
이후 멤버 계정 관리자는 멤버 계정의 모든 사용자에게 역할을 맡는 권한을 위임할 수 있습니다. 이렇게 하면 멤버 계정 사용자는 관리 계정과 조직의 리소스를 생성하거나 리소스에 액세스할 수 있습니다. 역할을 수임할 수 있는 권한을 AWS 서비스에 부여하고 싶다면, 신뢰 정책의 보안 주체는 AWS 서비스 보안 주체도 될 수 있습니다.
IAM을 사용하여 권한을 위임하는 방법에 대한 자세한 설명은 IAM 사용자 가이드의 액세스 관리 섹션을 참조하십시오.
-
다음은 사용자가 조직에서 CreateAccount
작업을 수행하도록 허용하는 정책의 예입니다.
{ "Version":"2012-10-17", "Statement":[ { "Sid":"Stmt1OrgPermissions", "Effect":"Allow", "Action":[ "organizations:CreateAccount" ], "Resource":"*" } ] }
정책의 Resource
요소에 리소스 유형을 가리키는 부분 ARN을 제공할 수도 있습니다.
{ "Version":"2012-10-17", "Statement":[ { "Sid":"AllowCreatingAccountsOnResource", "Effect":"Allow", "Action":"organizations:CreateAccount", "Resource":"arn:aws:organizations::*:account/*" } ] }
또한 생성 중인 계정에 특정 태그를 포함하지 않는 계정의 생성을 거부할 수도 있습니다.
{ "Version":"2012-10-17", "Statement":[ { "Sid":"DenyCreatingAccountsOnResourceBasedOnTag", "Effect":"Deny", "Action":"organizations:CreateAccount", "Resource":"*", "Condition":{ "StringEquals":{ "aws:ResourceTag/key":"value" } } } ] }
사용자, 그룹, 역할 및 권한에 대한 자세한 내용은 IAM 사용 설명서의 자격 증명(사용자, 그룹 및 역할)을 참조하세요.
리소스 기반 정책
Amazon S3와 같은 일부 서비스는 리소스 기반 권한 정책을 지원합니다. 예를 들어, 정책을 Amazon S3 버킷에 연결하여 해당 버킷에 대한 액세스 권한을 관리할 수 있습니다. 현재 AWS Organizations는 리소스 기반 정책을 지원하지 않습니다.
정책 요소 지정: 작업, 조건, 효과, 리소스
각 AWS Organizations 리소스에 대해, 서비스는 API 작업 모음을 정의하거나 특정 방식으로 리소스와 상호작용하거나 리소스를 조작하는 작업을 정의합니다. 이러한 작업에 대한 권한을 부여하기 위해 AWS Organizations에서는 정책에서 지정할 수 있는 작업을 정의합니다. 예를 들어 OU 리소스의 경우 AWS Organizations는 다음처럼 작업을 정의합니다.
-
AttachPolicy
및DetachPolicy
-
CreateOrganizationalUnit
및DeleteOrganizationalUnit
-
ListOrganizationalUnits
및DescribeOrganizationalUnit
단 일부 인스턴스에서는 API 작업을 수행하려면 하나 이상의 작업에 대한 권한과, 하나 이상의 리소스에 대한 권한이 필요할 수도 있다는 점을 기억하세요.
다음은 IAM 권한 정책에서 사용할 수 있는 가장 기본적인 요소입니다.
-
작업(Action) – 이 키워드를 사용하여 허용 또는 거부할 작업을 식별합니다. 예를 들어 지정한
Effect
에 따라organizations:CreateAccount
은 AWS OrganizationsCreateAccount
작업을 수행할 수 있는 사용자 권한을 허용하거나 거부합니다. 자세한 내용은 IAM 사용 설명서의 IAM JSON 정책 요소: 작업을 참조하세요. -
리소스(Resource) – 이 키워드를 사용하여 정책 문을 적용할 리소스의 ARN을 지정합니다. 자세한 내용은 IAM 사용 설명서의 IAM JSON 정책 요소: 리소스를 참조하세요.
-
조건(Condition) – 이 키워드를 사용하여 정책 문이 적용되기 위해 충족해야 하는 조건을 지정합니다.
Condition
은 일반적으로 정책이 일치하려면 충족해야 하는 추가 상황을 지정합니다. 자세한 정보는 IAM 사용 설명서의 IAM JSON 정책 요소: 조건을 참조하세요. -
효과(Effect) – 이 키워드를 사용하여 정책 문이 리소스에 대한 작업을 허용 또는 거부할지를 지정합니다. 명시적으로 리소스에 대한 액세스 권한을 부여(또는 허용)하지 않는다면, 액세스는 암시적으로 거부됩니다. 사용자가 특정 리소스에 대한 특정 작업을 수행하지 못하게 하도록, 다른 정책이 부여한 액세스를 포함한 리소스에 대한 액세스를 명시적으로 거부할 수도 있습니다. 자세한 내용은 IAM 사용 설명서의 IAM JSON 정책 요소: 효과를 참조하세요.
-
보안 주체(Principal) – 자격 증명 기반 정책(IAM 정책)에서, 해당 정책이 연결된 사용자는 자동으로 묵시적으로 보안 주체가 됩니다. 리소스 기반 정책의 경우 사용자, 계정, 서비스 또는 권한의 수신자인 기타 개체를 지정합니다(리소스 기반 정책에만 해당). 현재 AWS Organizations는 리소스 기반 정책 대신 자격 증명 기반 정책만 지원합니다.
IAM 정책 구문과 설명에 대해 자세히 알아보려면 IAM 사용 설명서의 IAM JSON 정책 참조를 참조하세요.