IAM
- Identity and Access Management ; Global Service = not scopped region service
: 사용자와 사용자 그룹을 관리하는 서비스로 글로벌 서비스입니다. 즉, 지역에 구애받지 않는 서비스입니다.
IAM Groups
- 사용자만 그룹에 속할 수 있고 그룹 안에 여러 사용자를 배치할 수 있으며, 사용자는 IAM Group의 정책을 상속받아
서비스를 이용하게 됩니다.
IAM Users
- 루트 계정과 사용자 계정으로 나뉘는데, 로그인 할 때 나눠서 진행할 수 있습니다.
- 루트 계정이 아닌, 가능한 사용자 계정을 통해 로그인하고 서비스를 이용해야 보안적인 측면에서 안전할 수 있습니다.
(단, 루트 계정이 반드시 필요한 경우도 존재)
조직 하나에 그룹이 여러개가 있고 해당 그룹에는 여러 사용자가 있습니다.
그룹 내 사용자끼리 그룹 권한을 상속받아 관리되고 있으며, 각 사용자는 여러 그룹의 교집합으로 들어갈 수 있습니다.
그로 인해, 사용자는 여러 그룹의 권한을 각각 상속받아 다양한 정책 권한을 이용할 수 있습니다.
정책은 Visual Editor로도 만들 수 있지만, Json 형태로도 추가하여 구현할 수 있습니다.
위 그림은 iam 서비스에 대해서 접근이 허용되며, 허용된 api 목록에서 적용될 작업에 대한 권한 및 리소스를 제공한다는 내용입니다.
IAM이라는 서비스에 ListUsers, GetUser이라는 작업(액션)을 제공하며, 이에 관련된 리소스는 모두 허용한다는 의미입니다.
JSON 형태로 정리된 요소들에 대해서 정리하겠습니다.
1) Version:) 정책 버전으로 2012-10-17을 사용하고 있고 주로 해당 버전을 이용합니다.
2) Id:) 정책에 대한 identifier(식별자)이며 선택사항입니다.
3) Statement:) 하나 이상의 개별적 진술 내용으로 필수 요소입니다.
3.1) Sid:) 진술에 대한 식별자입니다.(선택)
3.2) Effect:) 특정 api에 접근하는 걸 허용할 지 아니면 거부할 지에 대한 내용입니다. (allow, deny)
3.3) Principal:) 특정 정책이 적용될 사용자, 계정 혹은 역할로 구성됩니다.
{
"Principal" : {"AWS": ["arn:aws:iam: ~~~ :root"]}
}
이런 경우라면, AWS계정의 root계정에 정책을 적용할 것을 의미합니다.
3.4) Action:) Effect에 기반하여 허용 또는 거절되는 api 목록입니다.
3.5) Resource:) 적용될 Action의 리소스 목록입니다. (정책 생성할 때 리소스를 특정 리소스에 부여 또는 전체 리소스에 부여)
> ARN이란 개념이 나오는데, 이는 리소스 이름에 대한 명칭입니다.
해당 리소스 이름을 가진 곳에만 권한을 부여할 수 있습니다.
arn:partition:service:region:account:resource
* 사용
partition: identifies the partition for the resource . For standard AWS Regions, the partition is aws. If you have resources in other partitions, the partition is aws-partitionname. For example, the partition for resources in the China (Beijing) Region is aws-cn. You cannot delegate access between accounts in different partitions.
service: identifies the AWS product. IAM resources always use iam.
region: identifies the Region of the resource. For IAM resources, this is always kept blank.
account: specifies the AWS account ID with no hyphens.
resource: identifies the specific resource by name.
You can specify IAM and AWS STS ARNs using the following syntax.
The Region portion of the ARN is blank because IAM resources are global.
[syntax]
arn:aws:iam::account:root
arn:aws:iam::account:user/user-name-with-path
arn:aws:iam::account:group/group-name-with-path
arn:aws:iam::account:role/role-name-with-path
arn:aws:iam::account:policy/policy-name-with-path
arn:aws:iam::account:instance-profile/instance-profile-name-with-path
arn:aws:sts::account:federated-user/user-name
arn:aws:sts::account:assumed-role/role-name/role-session-name
arn:aws:iam::account:mfa/virtual-device-name-with-path
arn:aws:iam::account:u2f/u2f-token-id
arn:aws:iam::account:server-certificate/certificate-name-with-path
arn:aws:iam::account:saml-provider/provider-name
arn:aws:iam::account:oidc-provider/provider-name
https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns
3.6) Condition:) Statement가 언제 적용될지를 결정하는 조건입니다. (옵션)(예: MFA필수, 소스IP)
> MFA 필수
이러한 작업을 수행하려면 콘솔 사용자 및 임시 자격 증명이 있는 사용자가 MFA 디바이스로 인증해야 합니다. 자세히 알아보기
> 소스 IP
요청이 지정된 IP 주소 범위에서 수신된 경우에 한해 지정된 작업에 대한 액세스가 허용됩니다.
사용자는 그룹에 의해서 정책을 상속받아 이용할 수 있지만 인라인 형태로 직접 받아서 쓸 수 있습니다.
하지만 이는 권장하는 방법이 아니기 때문에 가능하면 그룹을 만들어서 사용자를 포함하여 정책을 상속시켜 서비스를 관리하도록 하는 것이 좋습니다.
IAM 서비스 이용 순서
1) 루트 계정 또는 Administrator Access가 부여된 계정으로 접속한 다음에 사용자를 추가합니다.
2) 이름을 정하고 자격 증명 유형은 암호로 한다. 수동으로 암호를 입력한 다음 로그인 할 때마다 업데이트 된다는 체크 박스를 해제하고 진행한다.
3) 이미 존재한 그룹에 적용하여 정책 권한을 줄 것인지 아니면 새로 그룹을 생성해서 정책을 부여한 다음 사용자를 해당 그룹에 넣을 것인지 그것도 아니면 정책을 직접 연결하여 (인라인) 권한을 부여할 지 편한대로 진행하면 됩니다. 단! 가능하면 그룹에 권한을 준 다음 그룹에 사용자를 추가하여 정책을 상속하여 부여하는 것이 가장 좋습니다.
4) 정책이 부여된 상태에서는 태그를 이용해서 키:벨류 형태로 서비스를 추적할 수 있습니다.
5) 이후에는 사용자를 순서대로 쭉 진행하면서 생성하면 됩니다.
6) 위 그림은 admin이라는 사용자 그룹을 만든 다음에 권한을 AdministratorAccess를 부여한 것입니다. 해당 그룹에 속한 사용자들은
계정에 있어서 모든 권한을 부여받아 진행할 수 있습니다. (계정 생성, 삭제, 그룹 생성 및 권한 부여 등..)
7) 대시보드로 이동하면 AWS 계정을 확인할 수 있는데 별칭(alias)을 선택해서 원하는대로 생성할 수 있습니다.
> 이렇게 생성된 사용자 계정은 IAM 사용자를 위한 로그인 URL을 복사하여 다른 브라우저나 시크릿 모드로 열어 붙여넣고 사용자로서 재 로그인을 할 수 있습니다.
이렇게 로그인하면 앞서 그룹을 통해 상속받아 부여된 정책 및 권한을 가진 사용자로, 해당 권한만 활용해서 서비스가 가동됩니다.
사용자는 여러 그룹에 대해서 상속받아 권한을 받을 수 있고 더불어 관리형 정책으로 직접 부여받을 수 있습니다.
'Cloud' 카테고리의 다른 글
Access Key & IAM Role & IAM Service (0) | 2023.01.17 |
---|---|
AWS - CLI & 사용자 정보 보호 (0) | 2023.01.17 |
AWS 소개 (0) | 2023.01.17 |
Docker 환경 구성2 (0) | 2023.01.17 |
Docker 설치방법 & 환경구성 (0) | 2023.01.17 |