IAM
AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 서비스로, 사용자, 그룹, 역할을 생성하고,
이들에게 다양한 권한을 부여할 수 있다.
AWS Oraganiztion에서 SCP, OU, Policy를 통해 조직 내 여러 AWS 계정의 권한을 관리할 수 있다.
IAM 구성
1) 사용자 ( 사람 혹은 application)
2. 그룹 ( 사용자의 집합)
3. 정책 ( 권한을 정의하고 있는 JSON 형식 문서)
사용자,그룹,역할 이 무엇을 할 수 있는 지에 관한 문서. JSON으로 정의
Effect": "Allow"
=> 특정 작업을 허용.
"Action": "iam:CreateServiceLinkedRole"
=> IAM 서비스에서 서비스와 연관된 역할을 생성하는 작업에 대한 권한
"Resource": "*"
=> 어떤 리소스에 대해서도 역할을 생성가능
=> "Condition": 조건
4. 역할 ( AWS의 권한의 집합)
역할(Role)은 하나 이상의 정책(Policy)을 기반으로 구성
IAM 사용자, AWS 서비스, 어플리케이션 등이 부여받아 활동할 수 있게 한다.
IAM에서 AWS 계정에 대한 별칭 생성(awsnog) 후
aws 콘솔에 들어갈 수 있는 access 권한을 제공할 것이면 체크 후 iam 사용자를 생성할 수 있다.
생성한 사용자에게 비밀번호를 바꾸게 하고 싶으면 권장사항을 체크하면 된다.
해당 창에서 별칭, 사용자이름, 비밀번호를 입력하여 로그인할 수 있게 된다.
IAM test user 생성
테스트하기 위해 IAM 생성 시
콘솔로 로그인 할 것이 아니기 때문에 AWS Management Console 에 대한 부분은 체크하지 않고 ex_test_iam 유저 생성
IAM - 해당 사용자 - 보안자격증명
액세스 키를 통하여 사용자가 가지고 있는 권한(IAMReadOnlyAccess)을 행사할 수 있다.
비밀 액세스 키를 볼 수 있는 게 마지막이다.
access key를 활용해서 해당 사용자가 가지고 있는 권한을 행사할 수 있다.
IAM에서 권한을 받아 AWS에 Access하는 2가지 방식 (인증방식)
-secret access key는 발급 시점만 확인 가능
-iam 사용자를 서버/프로그램 별로 생성하여 access key 전달하여 사용
=>acces key 코드에 입력 혹은 별도 파일에 자격증명 저장
1. AWS 웹 콘솔
2. 프로그래밍 액세스 방식
프로그램적으로 AWS 서비스와 연동/접근하고 싶을 때 사용한다.
1) CLI
ubuntu가 설치된 ec2에서 실습해보았다.
2) SDK
python에서 boto3 라이브러리를 이용하여 AM 클라이언트를 생성하고, 사용자 목록을 출력하였다.
import boto3
from botocore.exceptions import BotoCoreError, ClientError
def run():
# IAM 클라이언트 생성
client = boto3.client(
'iam',
region_name='ap-northeast-2', # 리전 설정
aws_access_key_id='your_access_key_id', # 액세스 키 ID
aws_secret_access_key='your_secret_access_key' # 비밀 액세스 키
)
# 사용자 목록 출력
print("print User list")
try:
response = client.list_users()
for user in response['Users']:
print(user['UserName']) # 사용자 이름 출력
except (BotoCoreError, ClientError) as error:
print(f"오류 발생: {error}") # 오류 처리
if __name__ == "__main__":
run()
<출력 결과>
'Cloud > AWS' 카테고리의 다른 글
S3 vs EBS vs EFS (0) | 2024.11.25 |
---|---|
VPC Endpoints & VPC (0) | 2024.11.23 |
Autoscaling Group & ALB (0) | 2024.11.20 |
IAM User가 아닌 EC2에 역할 부여 (0) | 2024.11.20 |
클라우드 와 온프레미스 (2) | 2024.10.31 |