IAM 아이덴티티 권한 추가 및 제거
IAM 아이덴티티 권한 추가 및 제거
정책(policy)을 사용해 아이덴티티(사용자, 사용자 그룹, 역할)의 권한을 정의해요. AWS Management Console, AWS CLI, AWS API를 사용해 IAM 정책을 아이덴티티에 연결(attach)하거나 분리(detach)함으로써 권한을 추가·제거할 수 있어요. 정책을 사용해 엔티티(사용자나 역할)에만 권한 경계(permissions boundary)를 설정할 수도 있어요. 권한 경계는 엔티티가 가질 수 있는 최대 권한을 통제하는 고급 AWS 기능이에요.
출처: 문서
본문
용어 (Terminology)
권한 정책을 아이덴티티(IAM 사용자, IAM 그룹, IAM 역할)와 연결할 때, 관리형(managed) 정책인지 인라인(inline) 정책인지에 따라 용어와 절차가 달라져요.
- Attach (연결) — 관리형 정책에 사용해요. 관리형 정책을 아이덴티티(사용자, 사용자 그룹, 역할)에 연결해요. 정책을 연결하면 정책의 권한이 아이덴티티에 적용돼요.
- Detach (분리) — 관리형 정책에 사용해요. 관리형 정책을 IAM 아이덴티티(사용자, 사용자 그룹, 역할)에서 분리해요. 정책을 분리하면 권한이 아이덴티티에서 제거돼요.
- Embed (내장) — 인라인 정책에 사용해요. 인라인 정책을 아이덴티티(사용자, 사용자 그룹, 역할)에 내장해요. 정책을 내장하면 정책의 권한이 아이덴티티에 적용돼요. 인라인 정책은 아이덴티티 안에 저장되므로 attach가 아니라 embed되고, 결과는 비슷해요.
참고
서비스 연결 역할(service-linked role)의 인라인 정책은 그 역할에 의존하는 서비스에서만 내장할 수 있어요. 해당 기능을 지원하는지 서비스의 AWS 문서를 확인하세요.
- Delete (삭제) — 인라인 정책에 사용해요. IAM 아이덴티티(사용자, 사용자 그룹, 역할)에서 인라인 정책을 삭제해요. 정책을 삭제하면 권한이 아이덴티티에서 제거돼요.
참고
서비스 연결 역할의 인라인 정책은 그 역할에 의존하는 서비스에서만 삭제할 수 있어요. 해당 기능을 지원하는지 서비스의 AWS 문서를 확인하세요.
이 작업들은 모두 콘솔, AWS CLI, 또는 AWS API로 수행할 수 있어요.
관리형 정책과 인라인 정책의 차이는 관리형 정책과 인라인 정책, 권한 경계는 IAM 엔티티의 권한 경계, 일반 정책 정보는 IAM의 정책과 권한, 정책 검증은 IAM 정책 검증을 참고하세요. AWS 계정의 IAM 리소스 수와 크기에는 한도가 있어요.
아이덴티티 활동 보기
아이덴티티(사용자, 사용자 그룹, 역할)의 권한을 바꾸기 전에 최근 서비스 수준 활동을 검토해야 해요. 액세스를 실제로 사용 중인 principal(사람이나 애플리케이션)의 액세스를 제거하고 싶지 않기 때문이에요. 최근 액세스 정보 보기에 대한 자세한 내용은 마지막 액세스 정보를 사용한 권한 정제를 참고하세요.
콘솔로 IAM 아이덴티티 권한 추가
AWS Management Console로 아이덴티티(사용자, 사용자 그룹, 역할)에 권한을 추가할 수 있어요. 권한을 통제하는 관리형 정책을 연결하거나, 권한 경계 역할을 하는 정책을 지정하거나, 인라인 정책을 내장할 수 있어요.
아이덴티티의 권한 정책으로 관리형 정책 사용 (콘솔)
- AWS Management Console에 로그인하고 https://console.aws.amazon.com/iam/ 에서 IAM 콘솔을 엽니다.
- 탐색 창에서 Policies 를 선택합니다.
- 정책 목록에서 연결할 정책 이름 옆의 라디오 버튼을 선택합니다. 검색 상자로 정책 목록을 필터링할 수 있습니다.
- Actions 를 선택하고 Attach 를 선택합니다.
- 정책을 연결할 아이덴티티를 하나 이상 선택합니다. 검색 상자로 principal 엔티티 목록을 필터링할 수 있습니다. 아이덴티티를 선택한 후 Attach policy 를 선택합니다.
관리형 정책으로 권한 경계 설정 (콘솔)
- AWS Management Console에 로그인하고 IAM 콘솔을 엽니다.
- 탐색 창에서 Policies 를 선택합니다.
- 정책 목록에서 설정할 정책의 이름을 선택합니다. 검색 상자로 필터링할 수 있습니다.
- 정책 세부 정보 페이지에서 Entities attached 탭을 선택하고, 필요하면 Attached as a permissions boundaries 섹션을 열어 Set this policy as a permissions boundary 를 선택합니다.
- 권한 경계로 사용할 사용자나 역할을 하나 이상 선택합니다. 검색 상자로 필터링할 수 있습니다. principal을 선택한 후 Set permissions boundary 를 선택합니다.
사용자 또는 역할에 인라인 정책 내장 (콘솔)
- AWS Management Console에 로그인하고 IAM 콘솔을 엽니다.
- 탐색 창에서 Users 또는 Roles 를 선택합니다.
- 목록에서 정책을 내장할 사용자나 역할의 이름을 선택합니다.
- Permissions 탭을 선택합니다.
- Add permissions 를 선택한 다음 Create inline policy 를 선택합니다.
참고
IAM에서는 서비스 연결 역할에 인라인 정책을 내장할 수 없어요. 연결된 서비스가 역할의 권한을 수정할 수 있는지 정의하므로, 서비스 콘솔, API, AWS CLI에서 추가 정책을 추가할 수 있을 수도 있어요. 서비스의 서비스 연결 역할 문서는 IAM과 함께 작동하는 AWS 서비스에서 서비스의 Service-Linked Role 열에 Yes를 선택해 확인하세요.
정책 생성에 필요한 단계를 보려면 다음 방법 중 하나를 선택하세요.
- 기존 관리형 정책 가져오기 — 계정 안의 관리형 정책을 가져온 뒤 요구 사항에 맞게 편집할 수 있어요. 관리형 정책은 AWS 관리형 정책이거나 이전에 만든 고객 관리형 정책일 수 있어요.
- 비주얼 편집기로 정책 생성 — 비주얼 편집기에서 새 정책을 처음부터 만들 수 있어요. 비주얼 편집기를 쓰면 JSON 문법을 이해할 필요가 없어요.
- JSON 편집기로 정책 생성 — JSON 편집기 옵션에서는 JSON 문법으로 정책을 만들 수 있어요. 새 JSON 정책 문서를 입력하거나 예제 정책을 붙여 넣을 수 있어요.
인라인 정책을 만들면 자동으로 사용자나 역할에 내장돼요.
사용자 그룹에 인라인 정책 내장 (콘솔)
- AWS Management Console에 로그인하고 IAM 콘솔을 엽니다.
- 탐색 창에서 User groups 를 선택합니다.
- 목록에서 정책을 내장할 사용자 그룹의 이름을 선택합니다.
- Permissions 탭, Add permissions, Create inline policy 를 차례로 선택합니다.
- 다음 중 하나를 수행합니다.
- 정책을 만들려면 Visual 옵션을 선택합니다. 자세한 내용은 비주얼 편집기로 정책 생성을 참고하세요.
- 정책을 만들려면 JSON 옵션을 선택합니다. 자세한 내용은 JSON 편집기로 정책 생성을 참고하세요.
- 정책이 만족스러우면 Create policy 를 선택합니다.
하나 이상의 엔티티에 대한 권한 경계 변경 (콘솔)
- AWS Management Console에 로그인하고 IAM 콘솔을 엽니다.
- 탐색 창에서 Policies 를 선택합니다.
- 정책 목록에서 설정할 정책의 이름을 선택합니다.
- 정책 세부 정보 페이지에서 Entities attached 탭을 선택하고, 필요하면 Attached as a permissions boundary 섹션을 엽니다. 경계를 변경할 사용자나 역할 옆의 확인란을 선택하고 Change 를 선택합니다.
- 권한 경계로 사용할 새 정책을 선택합니다. 검색 상자로 필터링할 수 있습니다. 정책을 선택한 후 Set permissions boundary 를 선택합니다.
콘솔로 IAM 아이덴티티 권한 제거
AWS Management Console로 아이덴티티(사용자, 사용자 그룹, 역할)에서 권한을 제거할 수 있어요. 권한을 통제하는 관리형 정책을 분리하거나, 권한 경계 역할을 하는 정책을 제거하거나, 인라인 정책을 삭제할 수 있어요.
권한 정책으로 사용된 관리형 정책 분리 (콘솔)
- AWS Management Console에 로그인하고 IAM 콘솔을 엽니다.
- 탐색 창에서 Policies 를 선택합니다.
- 정책 목록에서 분리할 정책 이름 옆의 라디오 버튼을 선택합니다.
- Actions 를 선택하고 Detach 를 선택합니다.
- 정책을 분리할 아이덴티티를 선택합니다. 검색 상자로 필터링할 수 있습니다. 선택한 후 Detach policy 를 선택합니다.
권한 경계 제거 (콘솔)
- AWS Management Console에 로그인하고 IAM 콘솔을 엽니다.
- 탐색 창에서 Policies 를 선택합니다.
- 정책 목록에서 설정할 정책의 이름을 선택합니다.
- 정책 요약 페이지에서 Entities attached 탭을 선택하고, 필요하면 Attached as a permissions boundary 섹션을 열어 권한 경계를 제거할 엔티티를 선택한 뒤 Remove boundary 를 선택합니다.
- 경계를 제거하겠다는 확인 후 Remove boundary 를 선택합니다.
인라인 정책 삭제 (콘솔)
- AWS Management Console에 로그인하고 IAM 콘솔을 엽니다.
- 탐색 창에서 User groups, Users, 또는 Roles 를 선택합니다.
- 목록에서 제거할 정책이 있는 사용자 그룹, 사용자, 역할의 이름을 선택합니다.
- Permissions 탭을 선택합니다.
- 정책 옆의 확인란을 선택하고 Remove 를 선택합니다.
- 확인 상자에서 Remove 를 선택합니다.
AWS CLI로 IAM 정책 추가
AWS CLI로 아이덴티티(사용자, 사용자 그룹, 역할)에 권한을 추가할 수 있어요. 권한을 통제하는 관리형 정책을 연결하거나, 권한 경계 역할을 하는 정책을 지정하거나, 인라인 정책을 내장할 수 있어요.
엔티티의 권한 정책으로 관리형 정책 사용 (AWS CLI)
- (선택) 관리형 정책 정보 보기 — managed policy 나열:
aws iam list-policies, 상세 정보 가져오기:get-policy - 관리형 정책을 아이덴티티(사용자, 사용자 그룹, 역할)에 연결하려면 다음 중 하나를 사용합니다.
aws iam attach-user-policyaws iam attach-group-policyaws iam attach-role-policy
관리형 정책으로 권한 경계 설정 (AWS CLI)
- (선택)
aws iam list-policies,aws iam get-policy - 엔티티(사용자나 역할)의 권한 경계를 설정하려면 다음 중 하나를 사용합니다.
aws iam put-user-permissions-boundaryaws iam put-role-permissions-boundary
인라인 정책 내장 (AWS CLI)
서비스 연결 역할이 아닌 아이덴티티(사용자, 사용자 그룹, 역할)에 인라인 정책을 내장하려면 다음 중 하나를 사용합니다.
aws iam put-user-policyaws iam put-group-policyaws iam put-role-policy
AWS CLI로 IAM 정책 제거
권한 정책으로 사용된 관리형 정책 분리 (AWS CLI)
- (선택)
aws iam list-policies,aws iam get-policy - 정책과 아이덴티티 사이의 관계를 조사하려면 다음을 실행합니다.
- 관리형 정책이 연결된 아이덴티티 나열:
aws iam list-entities-for-policy - 아이덴티티에 연결된 관리형 정책 나열:
aws iam list-attached-user-policies,aws iam list-attached-group-policies,aws iam list-attached-role-policies
- 관리형 정책이 연결된 아이덴티티 나열:
- 관리형 정책을 분리하려면 다음 중 하나를 사용합니다.
aws iam detach-user-policyaws iam detach-group-policyaws iam detach-role-policy
권한 경계 제거 (AWS CLI)
- (선택) 사용자나 역할의 권한 경계로 현재 사용 중인 관리형 정책 보기:
aws iam get-user,aws iam get-role - (선택) 관리형 정책이 권한 경계로 사용되는 사용자나 역할 보기:
aws iam list-entities-for-policy - (선택)
aws iam list-policies,aws iam get-policy - 사용자나 역할에서 권한 경계 제거:
aws iam delete-user-permissions-boundaryaws iam delete-role-permissions-boundary
인라인 정책 삭제 (AWS CLI)
- (선택) 아이덴티티에 연결된 모든 인라인 정책 나열:
aws iam list-user-policies,aws iam list-group-policies,aws iam list-role-policies - (선택) 아이덴티티에 내장된 인라인 정책 문서 가져오기:
aws iam get-user-policy,aws iam get-group-policy,aws iam get-role-policy - 서비스 연결 역할이 아닌 아이덴티티에서 인라인 정책 삭제:
aws iam delete-user-policyaws iam delete-group-policyaws iam delete-role-policy
AWS API로 IAM 정책 추가
엔티티의 권한 정책으로 관리형 정책 사용 (AWS API)
- (선택) managed policy 나열:
ListPolicies, 상세 정보:GetPolicy - 관리형 정책을 아이덴티티에 연결하려면 다음 중 하나를 호출합니다.
AttachUserPolicyAttachGroupPolicyAttachRolePolicy
관리형 정책으로 권한 경계 설정 (AWS API)
- (선택)
ListPolicies,GetPolicy - 엔티티(사용자나 역할)의 권한 경계 설정:
PutUserPermissionsBoundaryPutRolePermissionsBoundary
인라인 정책 내장 (AWS API)
서비스 연결 역할이 아닌 아이덴티티에 인라인 정책을 내장하려면 다음 중 하나를 호출합니다.
PutUserPolicyPutGroupPolicyPutRolePolicy
AWS API로 IAM 정책 제거
권한 정책으로 사용된 관리형 정책 분리 (AWS API)
- (선택)
ListPolicies,GetPolicy - 정책과 아이덴티티의 관계 조사:
- 관리형 정책이 연결된 아이덴티티 나열:
ListEntitiesForPolicy - 아이덴티티에 연결된 관리형 정책 나열:
ListAttachedUserPolicies,ListAttachedGroupPolicies,ListAttachedRolePolicies
- 관리형 정책이 연결된 아이덴티티 나열:
- 관리형 정책 분리:
DetachUserPolicyDetachGroupPolicyDetachRolePolicy
권한 경계 제거 (AWS API)
- (선택) 현재 권한 경계로 사용 중인 관리형 정책 보기:
GetUser,GetRole - (선택)
ListEntitiesForPolicy - (선택)
ListPolicies,GetPolicy - 사용자나 역할에서 권한 경계 제거:
DeleteUserPermissionsBoundaryDeleteRolePermissionsBoundary
인라인 정책 삭제 (AWS API)
- (선택) 아이덴티티에 연결된 모든 인라인 정책 나열:
ListUserPolicies,ListGroupPolicies,ListRolePolicies - (선택) 아이덴티티에 내장된 인라인 정책 문서 가져오기:
GetUserPolicy,GetGroupPolicy,GetRolePolicy - 서비스 연결 역할이 아닌 아이덴티티에서 인라인 정책 삭제:
DeleteUserPolicyDeleteGroupPolicyDeleteRolePolicy