IAM 정책 만들기
IAM 정책 만들기 (콘솔)
정책(policy)은 자격 증명이나 리소스에 연결하면 해당 권한을 정의하는 엔터티예요. AWS Management Console을 사용해 IAM에서 고객 관리형 정책을 만들 수 있어요. 고객 관리형 정책은 본인 AWS 계정에서 관리하는 독립형(standalone) 정책이에요. 그런 다음 정책을 계정의 자격 증명(사용자, 그룹, 역할)에 연결할 수 있어요.
출처: 문서
본문
IAM 정책 만들기
AWS Management Console에서 다음 방법 중 하나로 고객 관리형 정책을 만들 수 있어요.
- JSON — 게시된 예제 자격 증명 기반 정책을 붙여 넣고 사용자 지정하세요.
- Visual editor — 비주얼 편집기에서 처음부터 새 정책을 구성하세요. 비주얼 편집기를 사용하면 JSON 구문을 알 필요가 없어요.
- Import — 계정 안의 관리형 정책을 가져와서 사용자 지정하세요. AWS 관리형 정책이나 이전에 만든 고객 관리형 정책을 가져올 수 있어요.
JSON 편집기로 정책 만들기
JSON 옵션을 선택하면 JSON으로 정책을 입력하거나 붙여 넣을 수 있어요. 이 방법은 예제 정책을 계정에 복사해 사용할 때 유용해요. 또는 JSON 편집기에 직접 본인 JSON 정책 문서를 입력할 수 있어요. JSON 옵션으로 비주얼 편집기와 JSON 사이를 전환해 보기를 비교할 수도 있어요.
JSON 편집기에서 정책을 만들거나 편집하면 IAM이 정책 검증을 수행해서 효과적인 정책을 만드는 데 도움을 줘요. IAM이 JSON 구문 오류를 식별하고, IAM Access Analyzer가 실행 가능한 권장 사항과 함께 추가 정책 검사를 제공해 정책을 더 다듬을 수 있게 해줘요.
JSON 정책 문서는 하나 이상의 스테이트먼트로 구성돼요. 각 스테이트먼트에는 같은 효과(Allow 또는 Deny)를 공유하고 같은 리소스와 조건을 지원하는 모든 액션이 들어 있어야 해요. 한 액션이 모든 리소스("*")를 지정하도록 요구하고 다른 액션이 특정 리소스의 Amazon Resource Name(ARN)을 지원한다면, 이 둘은 별도의 JSON 스테이트먼트에 있어야 해요. ARN 형식에 대한 자세한 내용은 AWS General Reference Guide의 Amazon Resource Name (ARN) 문서를 참고하세요. IAM 정책에 대한 일반 정보는 Policies and permissions in AWS Identity and Access Management 문서를, IAM 정책 언어에 대한 정보는 IAM JSON policy reference 문서를 참고하세요.
JSON 정책 편집기로 정책 만들기
- AWS Management Console에 로그인하고 https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.
- 왼쪽 탐색 창에서 Policies를 선택합니다.
- Create policy를 선택합니다.
- Policy editor 섹션에서 JSON 옵션을 선택합니다.
- JSON 정책 문서를 입력하거나 붙여 넣습니다. IAM 정책 언어에 대한 자세한 내용은 IAM JSON policy reference 문서를 참고하세요.
- 정책 검증 중 생성된 보안 경고, 오류, 일반 경고를 해결하고 Next를 선택합니다.
참고: Visual과 JSON 편집기 옵션은 언제든 전환할 수 있어요. 다만 Visual 편집기에서 변경하거나 Next를 선택하면 IAM이 정책을 비주얼 편집기에 최적화하도록 재구성할 수 있어요. 자세한 내용은 Policy restructuring 문서를 참고하세요.
- (선택 사항) AWS Management Console에서 정책을 만들거나 편집할 때 CloudFormation 템플릿에서 사용할 JSON 또는 YAML 정책 템플릿을 생성할 수 있어요. Policy editor에서 Actions를 선택한 뒤 Generate CloudFormation template을 선택하세요. CloudFormation에 대해 더 알아보려면 AWS CloudFormation 사용자 안내서의 AWS Identity and Access Management resource type reference 문서를 참고하세요.
- 정책에 권한 추가를 끝내면 Next를 선택합니다.
- Review and create 페이지에서 만드는 정책의 Policy Name과 Description(선택 사항)을 입력합니다. 이 정책에서 부여하는 권한을 확인하려면 Permissions defined in this policy를 검토합니다.
- (선택 사항) 태그를 키-값 쌍으로 연결해 정책에 메타데이터를 추가합니다. IAM 태그 사용에 대한 자세한 내용은 Tags for AWS Identity and Access Management resources 문서를 참고하세요.
- Create policy를 선택해 새 정책을 저장합니다.
정책을 만든 뒤에는 그룹, 사용자, 역할에 연결할 수 있어요. 자세한 내용은 Adding and removing IAM identity permissions 문서를 참고하세요.
비주얼 편집기로 정책 만들기
IAM 콘솔의 비주얼 편집기는 JSON 구문을 작성하지 않고도 정책을 만들도록 안내해요. 비주얼 편집기로 정책을 만드는 예시는 Controlling access to identities 문서를 참고하세요.
비주얼 편집기로 정책 만들기
- AWS Management Console에 로그인하고 https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.
- 왼쪽 탐색 창에서 Policies를 선택합니다.
- Create policy를 선택합니다.
- Policy editor 섹션에서 Select a service 섹션을 찾아 AWS 서비스를 선택합니다. 상단의 검색 상자로 서비스 목록의 결과를 좁힐 수 있어요. 비주얼 편집기 권한 블록 내에서는 서비스 하나만 선택할 수 있어요. 여러 서비스에 대한 액세스를 부여하려면 Add more permissions를 선택해 권한 블록을 여러 개 추가하세요.
- Actions allowed에서 정책에 추가할 액션을 선택합니다. 액션은 다음 방식으로 선택할 수 있어요.
- 모든 액션에 대한 체크박스를 선택합니다.
- add actions를 선택해 특정 액션의 이름을 입력합니다. 와일드카드(
*)를 사용해 여러 액션을 지정할 수 있어요. - Access level 그룹 중 하나를 선택해 해당 액세스 수준(for example,
Read,Write, orList)의 모든 액션을 선택합니다. - 각 Access level 그룹을 확장해 개별 액션을 선택합니다.
기본적으로 만드는 정책은 선택한 액션을 허용해요. 선택한 액션을 거부하려면 Switch to deny permissions를 선택하세요. IAM은 기본적으로 거부하므로, 보안 모범 사례로 사용자가 필요로 하는 액션과 리소스에만 권한을 허용하는 것을 권장해요. 다른 스테이트먼트나 정책이 별도로 허용한 권한을 덮어써야 할 때만 거부 권한을 가진 JSON 스테이트먼트를 만들어야 해요. 거부 권한은 트러블슈팅을 어렵게 만들 수 있으므로 최소한으로 제한하는 것을 권장해요.
- Resources에서, 이전 단계에서 선택한 서비스와 액션이 특정 리소스 선택을 지원하지 않으면 모든 리소스가 허용되고 이 섹션을 편집할 수 없어요. 리소스 수준 권한을 지원하는 액션을 하나 이상 선택했다면 비주얼 편집기가 해당 리소스를 나열해요. 그런 다음 Resources를 확장해 정책의 리소스를 지정할 수 있어요. 리소스는 다음 방식으로 지정할 수 있어요.
- Add ARNs를 선택해 Amazon Resource Name(ARN)으로 리소스를 지정합니다. 비주얼 ARN 편집기를 사용하거나 ARN을 수동으로 나열할 수 있어요. ARN 구문에 대한 자세한 내용은 AWS General Reference Guide의 Amazon Resource Name (ARN) 문서를, 정책의
Resource요소에서 ARN을 사용하는 방법은 IAM JSON policy elements: Resource 문서를 참고하세요. - 리소스 옆의 Any in this account를 선택해 해당 유형의 모든 리소스에 권한을 부여합니다.
- All을 선택해 서비스의 모든 리소스를 선택합니다.
- Add ARNs를 선택해 Amazon Resource Name(ARN)으로 리소스를 지정합니다. 비주얼 ARN 편집기를 사용하거나 ARN을 수동으로 나열할 수 있어요. ARN 구문에 대한 자세한 내용은 AWS General Reference Guide의 Amazon Resource Name (ARN) 문서를, 정책의
- (선택 사항) Request conditions - optional을 선택해 만드는 정책에 조건을 추가합니다. 조건은 JSON 정책 스테이트먼트의 효과를 제한해요. 예를 들어 사용자의 요청이 특정 시간 범위 안에서 일어날 때만 리소스에 액션을 수행하도록 허용한다고 지정할 수 있어요. 또한 사용자가 다중 인증(MFA) 디바이스로 인증해야 하는지, 요청이 특정 IP 주소 범위에서 와야 하는지 제한하는 데 흔히 쓰는 조건을 사용할 수도 있어요. 정책 조건에서 사용할 수 있는 모든 컨텍스트 키 목록은 Service Authorization Reference의 Actions, resources, and condition keys for AWS services 문서를 참고하세요. 조건은 다음 방식으로 선택할 수 있어요.
- 체크박스를 사용해 흔히 쓰는 조건을 선택합니다.
- Add another condition을 선택해 다른 조건을 지정합니다. 조건의 Condition Key, Qualifier, Operator를 선택하고 Value를 입력합니다. 값을 여러 개 추가하려면 Add를 선택합니다. 값들은 논리 "OR" 연산자로 연결된다고 생각하면 돼요. 끝나면 Add condition을 선택합니다. 조건을 더 추가하려면 Add another condition을 다시 선택하고 필요에 따라 반복합니다. 각 조건은 이 비주얼 편집기 권한 블록 하나에만 적용돼요. 권한 블록이 일치하려면 모든 조건이 true여야 해요. 즉 조건이 논리 "AND" 연산자로 연결된다고 생각하면 돼요.
Condition요소에 대한 자세한 내용은 IAM JSON policy reference의 IAM JSON policy elements: Condition 문서를 참고하세요.
- 권한 블록을 더 추가하려면 Add more permissions를 선택하고 각 블록에 대해 2~5단계를 반복합니다.
참고: Visual과 JSON 편집기 옵션은 언제든 전환할 수 있어요. 다만 Visual 편집기에서 변경하거나 Next를 선택하면 IAM이 정책을 비주얼 편집기에 최적화하도록 재구성할 수 있어요. 자세한 내용은 Policy restructuring 문서를 참고하세요.
- (선택 사항) AWS Management Console에서 정책을 만들거나 편집할 때 CloudFormation 템플릿에서 사용할 JSON 또는 YAML 정책 템플릿을 생성할 수 있어요. Policy editor에서 Actions를 선택한 뒤 Generate CloudFormation template을 선택하세요. CloudFormation에 대해 더 알아보려면 AWS CloudFormation 사용자 안내서의 AWS Identity and Access Management resource type reference 문서를 참고하세요.
- 정책에 권한 추가를 끝내면 Next를 선택합니다.
- Review and create 페이지에서 만드는 정책의 Policy Name과 Description(선택 사항)을 입력합니다. 의도한 권한을 부여했는지 확인하려면 Permissions defined in this policy를 검토합니다.
- (선택 사항) 태그를 키-값 쌍으로 연결해 정책에 메타데이터를 추가합니다. IAM 태그 사용에 대한 자세한 내용은 Tags for AWS Identity and Access Management resources 문서를 참고하세요.
- Create policy를 선택해 새 정책을 저장합니다.
정책을 만든 뒤에는 그룹, 사용자, 역할에 연결할 수 있어요. 자세한 내용은 Adding and removing IAM identity permissions 문서를 참고하세요.
기존 관리형 정책 가져오기
새 정책을 만드는 쉬운 방법은 계정 안에 있는, 필요한 권한을 최소한 일부 포함한 기존 관리형 정책을 가져오는 것이에요. 그런 다음 정책을 새 요구 사항에 맞게 사용자 지정할 수 있어요. 인라인 정책은 가져올 수 없어요. 관리형 정책과 인라인 정책의 차이에 대해 알아보려면 Managed policies and inline policies 문서를 참고하세요.
비주얼 편집기에서 기존 관리형 정책 가져오기
- AWS Management Console에 로그인하고 https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.
- 왼쪽 탐색 창에서 Policies를 선택합니다.
- Create policy를 선택합니다.
- Policy editor에서 Visual을 선택하고 페이지 오른쪽에서 Actions를 선택한 다음 Import policy를 선택합니다.
- Import policy 창에서 새 정책에 포함하려는 정책과 가장 가까운 관리형 정책을 선택합니다. 상단의 검색 상자로 정책 목록의 결과를 좁힐 수 있어요.
- Import policy를 선택합니다. 가져온 정책은 정책 하단의 새 권한 블록으로 추가돼요.
- Visual 편집기를 사용하거나 JSON을 선택해 정책을 사용자 지정하고 Next를 선택합니다.
참고: Visual과 JSON 편집기 옵션은 언제든 전환할 수 있어요. 다만 Visual 편집기에서 변경하거나 Next를 선택하면 IAM이 정책을 비주얼 편집기에 최적화하도록 재구성할 수 있어요. 자세한 내용은 Policy restructuring 문서를 참고하세요.
- Review and create 페이지에서 만드는 정책의 Policy Name과 Description(선택 사항)을 입력합니다. 이 설정은 나중에 편집할 수 없어요. Permissions defined in this policy를 검토하고 Create policy를 선택해 작업을 저장합니다.
JSON 편집기에서 기존 관리형 정책 가져오기
- AWS Management Console에 로그인하고 https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.
- 왼쪽 탐색 창에서 Policies를 선택합니다.
- Create policy를 선택합니다.
- Policy editor 섹션에서 JSON 옵션을 선택한 다음 페이지 오른쪽에서 Actions를 선택하고 Import policy를 선택합니다.
- Import policy 창에서 새 정책에 포함하려는 정책과 가장 가까운 관리형 정책을 선택합니다. 상단의 검색 상자로 정책 목록의 결과를 좁힐 수 있어요.
- Import policy를 선택합니다. 가져온 정책의 스테이트먼트가 JSON 정책 하단에 추가돼요.
- JSON으로 정책을 사용자 지정합니다. 정책 검증 중 생성된 보안 경고, 오류, 일반 경고를 해결하고 Next를 선택합니다. 또는 비주얼 편집기에서 정책을 사용자 지정하고 Next를 선택합니다.
참고: Visual과 JSON 편집기 옵션은 언제든 전환할 수 있어요. 다만 Visual 편집기에서 변경하거나 Next를 선택하면 IAM이 정책을 비주얼 편집기에 최적화하도록 재구성할 수 있어요. 자세한 내용은 Policy restructuring 문서를 참고하세요.
- Review and create 페이지에서 만드는 정책의 Policy Name과 Description(선택 사항)을 입력합니다. 이 설정은 나중에 편집할 수 없어요. 정책에서 정의된 Permissions를 검토하고 Create policy를 선택해 작업을 저장합니다.
정책을 만든 뒤에는 그룹, 사용자, 역할에 연결할 수 있어요. 자세한 내용은 Adding and removing IAM identity permissions 문서를 참고하세요.