AWS CLI를 사용하여 IAM 역할을 맡는 방법은 무엇입니까?

Aws Clileul Sayonghayeo Iam Yeoghal Eul Matneun Bangbeob Eun Mueos Ibnikka



AWS는 다양한 서비스와 막대한 혜택을 제공하고 있기 때문에 IT 전문가들이 보안 문제를 제기하는 것은 당연합니다. 이러한 보안 문제를 해결하기 위해 AWS는 IAM 서비스를 도입했습니다. AWS IAM은 사용자가 AWS 리소스를 보호할 수 있는 핵심 웹 서비스 중 하나입니다. IAM은 다양한 사용자에 대한 권한을 정의하여 AWS 서비스의 중앙 액세스 관리 기능을 제공합니다.

빠른 개요

이 기사에서는 다음 사항에 대해 알아봅니다.







AWS IAM 역할이란 무엇입니까?
AWS에서 역할 가정이란 무엇입니까?
AWS CLI를 사용하여 IAM 역할을 맡는 방법은 무엇입니까?



마지막 생각들



IAM 역할 및 권한을 통해 AWS 서비스에 대한 인증된 액세스와 승인된 액세스를 결정할 수 있습니다. 이러한 역할과 권한은 AWS 계정의 루트 사용자(소유자)만 할당할 수 있습니다.





AWS IAM 역할이란 무엇입니까?

IAM 역할은 AWS 계정 내 루트 사용자가 생성한 자격 증명입니다. 이 자격 증명에는 AWS 리소스에 대한 IAM 역할의 액세스 범위를 정의하는 특정 권한이 할당됩니다. 이러한 권한은 AWS에서 관리하거나 루트 사용자가 사용자 정의할 수 있습니다.

IAM 역할은 IAM 역할이 특정 권한을 가진 자격 증명이고 사용자가 특정 기능을 수행하기 위해 이러한 역할을 맡을 수 있다는 점을 제외하면 IAM 사용자와 매우 유사합니다. 역할에 부여된 권한은 이 자격 증명(IAM 역할)으로 수행할 수 있는 작업을 정의합니다.



AWS에서 역할 가정이란 무엇입니까?

역할 가정은 서비스 내의 리소스에 액세스하거나 리소스를 조작할 수 있는 권한이 사용자에게 할당되지 않더라도 사용자가 AWS 서비스를 사용할 수 있도록 허용하는 AWS IAM 서비스의 기능 중 하나입니다. 이러한 권한은 역할이 수임될 때 사용자에게 간접적으로 할당됩니다. AWS 리소스에 액세스하는 데 세션 기반 로그인과 함께 임시 자격 증명 세트가 사용됩니다.

이러한 임시 자격 증명에는 비밀 액세스 키, 액세스 키 ID 및 보안 토큰이 포함됩니다. AWS 루트 사용자가 생성한 IAM 역할은 AWS 계정 내의 다른 사용자 또는 역할 정책에 ARN이 언급된 사용자가 맡을 수 있습니다. 사용자 또는 리소스의 ARN이 포함된 정책을 신뢰 정책 .

권한 정책과 신뢰 정책의 차이점은 무엇입니까?

다양한 방법을 통해 역할 가정 기능을 구현하기 전에 사용자가 이해해야 하는 두 가지 핵심 개념이 있습니다. IAM 서비스에는 두 가지 종류의 정책이 있습니다.

    • 신뢰 정책: 신뢰 정책은 특정 IAM 역할을 맡을 수 있는 사람을 결정합니다. 사용자가 맡을 역할의 경우 사용자의 ARN이 IAM 역할의 신뢰 정책에 언급되어 있습니다. 이 신뢰 정책은 사용자 또는 리소스가 이 역할을 맡을 수 있는 신뢰할 수 있는 엔터티인지 여부를 결정합니다.
    • 권한 정책: 이 정책은 사용자가 수행할 수 있는 작업이나 해당 역할로 수행할 수 있는 작업을 결정합니다.

AWS CLI를 사용하여 IAM 역할을 맡는 방법은 무엇입니까?

역할을 맡는 것은 인증을 받고 특정 작업을 수행할 권한이 있는 다른 사용자로 자신을 위장하는 것과 유사합니다. AWS는 신원을 가정하는 동안 보안이 그대로 유지되도록 보장했습니다.

다음 예를 고려하여 Assume-role 기능의 작동을 이해해 보겠습니다.

예를 들어, S3 버킷에 대한 권한이 할당되지 않은 AWS 계정 내에 사용자가 존재합니다. 그만큼 “읽기 전용 액세스” IAM 역할에 연결된 권한 정책이라고 합니다. 사용자가 이 역할을 맡을 수 있도록 사용자의 ARN은 IAM 역할의 정책에 언급되어 있습니다. 이 정책은 이제 다음과 같이 불립니다. '신뢰정책' 권한 정책과 다릅니다. 신뢰 정책은 AWS가 사용자가 승인된 엔터티인지 여부를 판단하는 데 도움이 되므로 매우 중요합니다.

ARN은 IAM 역할의 권한 정책이 아니라 신뢰 정책에 언급되어 있습니다. 역할을 맡아 사용자는 역할의 권한 정책에 정의된 몇 가지 관리 작업을 수행할 수 있습니다. 이러한 작업에는 리소스 추가, 삭제, 수정, 복원 등이 포함됩니다.

다음은 AWS CLI를 사용하여 역할을 맡는 세 가지 방법입니다.

방법 1: STS(보안 토큰 서비스) 사용

사용자는 임시 자격 증명 집합을 반환하는 STS 섹션(보안 토큰 서비스)에서 명령을 실행하여 역할을 맡을 수 있습니다. 임시 자격 증명은 리소스에 대한 API 호출을 만들기 위한 세션 기반 로그인을 설정하는 데 사용됩니다. 그러나 두 가지 예외 STS를 사용하는 동안 즉, GetFederationToken 그리고 GetSessionToken.

세션 및 페더레이션 토큰의 기밀 정보를 보호하기 위해 사용자는 이러한 토큰에 액세스하는 것이 제한됩니다. 어떤 상황에서도 보안이 손상되지 않도록 합니다. 역할을 맡음으로써 사용자는 자신에게 할당된 권한을 높일 수 있습니다.

이 기사 섹션에서는 STS 명령을 사용하여 임시 자격 증명 세트를 요청합니다. 다음 단계를 따르세요.

1단계: 사용자 및 사용자 정책 생성

먼저, 우리는 IAM 사용자 생성 권한이 없습니다. 이를 위해 명령 Windows의 시작 메뉴에서:


오직 루트 사용자 ~할 수 있다 만들다 IAM 사용자 AWS 계정 내에서. 따라서 다음 명령을 사용하여 AWS 루트 계정에 로그인하십시오.

AWS 구성


자격 증명은 명령 출력에 표시된 대로 이 데모의 CLI 내에 이미 구성되어 있습니다.


더 알아보기:

에게 IAM 사용자 생성 , CLI에 다음 명령을 제공합니다.

AWS IAM 생성 사용자 --사용자 이름 데모 사용자


교체 데모 사용자 당신과 함께 IAM 사용자 이름.

을 살리다 “아르” 명령의 출력에 다음과 같이 제공됩니다. 필수의 언제 창조 그만큼 신뢰 정책 :


더 읽어보세요:

다음 단계는 허용하다 사용자(데모 사용자 ) 에게 역할을 맡다 . 이를 위해 JSON 파일 어떤 것을 사용하든 텍스트 에디터 당신이 선호합니다. 이 데모에서는 다음을 사용했습니다. 메모장 아래 언급된 명령에 지정된 대로:

윈도우의 경우

메모장 user-policy.json


교체 사용자 정책 IAM 정책 이름으로 변경하세요.

리눅스 OS의 경우

왜냐하면 사용자 정책.json


현재 이 데모에서는 Windows 운영 체제를 사용하고 있습니다.


그러면 메모장이 열립니다. 메모장에 다음 정책을 붙여넣고 키를 누릅니다. “CTRL + S” 변경 사항을 저장하려면 키보드에서 다음을 수행하세요.

{
'버전' : '2012-10-17' ,
'성명' : [
{
'효과' : '허용하다' ,
'행동' : [
'ec2:설명*' ,
'iam:목록 역할' ,
'sts:역할 가정'
] ,
'자원' : '*'
}
]
}


다음은 지정된 정책에 대한 간략한 설명입니다.

    • ec2:설명: 이 권한은 사용자가 모든 AMI, 스냅샷 또는 EC2 인스턴스를 보거나 나열할 수 있음을 지정합니다.
    • iam:목록역할: 이 권한은 사용자가 IAM 서비스 내의 모든 역할을 나열할 수 있음을 지정합니다.
    • sts:역할 가정: 이 권한은 사용자가 IAM 서비스 내에 정의된 역할을 맡을 수 있음을 나타냅니다.

여기에서는 정책이 메모장 내에서 편집되어 저장되었습니다.


각 AWS 자원 할당됩니다 ARN(액세스 리소스 이름) 어느 고유하게 식별합니다 자원. 정책의 ARN을 확인하려면 아래에 언급된 명령을 사용하십시오.

AWS IAM 생성 정책 --정책 이름 사용자 정책 --정책 문서 파일: // 사용자 정책.json


위에서 언급한 명령에서:

    • –정책 이름: 값 바꾸기 '사용자 정책' 원하는 정책 이름으로 변경하세요.
    • –정책 문서: 이 필드에서 ' 사용자 정책.json” 사용자에 대한 정책이 포함된 json 파일 이름으로 바꿉니다.

위에서 언급한 명령의 출력은 다음과 같습니다. 을 살리다 “아르” 이 정책을 사용자에게 연결할 때 필요하므로 정책 출력에 언급되어 있습니다.

2단계: 사용자에게 정책 연결

이 정책을 통해 사용자는 다음을 나열할 수 있습니다. EC2 인스턴스 , 친구 등. 사용자가 다른 권한을 가진 역할을 맡으면 사용자는 권한 정책에서 허용하는 특정 작업만 수행할 수 있습니다.

이 섹션의 앞부분에서 생성된 사용자와 정책을 연결하려면 다음 명령을 사용합니다.

AWS IAM 연결-사용자-정책 --사용자 이름 데모 사용자 --정책-아른 'arn:aws:iam::123456789:정책/사용자 정책'


위에서 언급한 명령에서:

    • -사용자 이름: 교체 '데모 사용자' 에서 -사용자 이름 필드에 IAM 사용자 이름을 입력하세요.
    • –정책-아른: 마찬가지로, –정책-아른, 지정하다 “아르” 이전 명령(예: –create-policy)의 출력에서.

필요한 변경을 수행한 후 명령을 실행하면 정책이 사용자에게 성공적으로 연결되었습니다.


정책이 사용자에게 연결되었는지 확인하려면 CLI에 다음 명령을 제공하십시오.

aws iam 목록 연결 사용자 정책 --사용자 이름 데모 사용자


교체 데모 사용자 IAM으로 사용자 이름 사용자를 생성하는 동안 지정됩니다.

다음 명령의 출력은 정책이 사용자에게 성공적으로 연결되었는지 확인합니다.

3단계: 신뢰 정책 및 IAM 역할 생성

리소스 또는 사용자의 ARN이 정책에 지정되면 신뢰 관계가 설정됩니다. 그러면 이 기능을 통해 사용자나 엔터티는 정책에 의해 신뢰할 수 있는 것으로 간주되는 특정 작업을 수행할 수 있습니다.

이 단계에서는 IAM 역할과 사용자 간의 신뢰 관계를 설정하는 정책을 생성합니다. 이 신뢰 정책은 IAM 역할에 연결됩니다. 그런 다음 사용자는 IAM 역할을 맡아 사용자가 정책에 지정된 작업을 수행하도록 간접적으로 허용합니다.

신뢰 정책을 생성하기 위해 다음과 같은 명령이 제공됩니다.

윈도우의 경우

메모장 trust-role-policy.json


교체 신뢰 역할-정책.json 정책에 대한 선호 이름을 입력하세요.

리눅스 OS의 경우

왜냐하면 신뢰 역할-정책.json


교체 신뢰 역할-정책.json 정책에 대한 선호 이름을 입력하세요.

신뢰 정책은 다음을 따릅니다. JSON 형식 에 의해 지정된대로 .json 다음 명령의 확장명:


그러면 메모장이 열립니다. 반죽 다음과 같은 정책 메모장 내에서 “CTRL + S” 변경 사항을 저장하려면 키보드의 버튼을 누르세요. 사용자의 ARN은 IAM 콘솔의 사용자 대시보드에서도 복사할 수 있습니다. 이를 위해 IAM 대시보드를 방문하여 사용자 이름을 클릭하세요. 표시된 구성에서 요약 섹션에 표시되는 사용자의 ARN을 복사합니다.

{
'버전' : '2012-10-17' ,
'성명' : {
'효과' : '허용하다' ,
'주요한' : {
'AWS' : 'arn:aws:iam::123456789012:사용자/예제-사용자'
} ,
'행동' : 'sts:역할 가정'
}
}


위에서 언급한 정책에서:

    • AWS: 교체 AWS 필드 값 'arn:aws:iam::123456789012:user/example-user '를 사용하여 사용자의 ARN –create-user 명령의 출력에 표시되었습니다.

사용자는 다음에서 사용자의 ARN을 지정하여 다른 사용자가 IAM 역할을 맡는 것을 제한할 수 있습니다. “AWS” 필드:


더 읽어보세요:

이제 IAM 역할을 생성하고 여기에 신뢰 정책을 연결합니다. IAM 역할을 생성하려면 아래에 언급된 명령을 사용하십시오.

AWS IAM 생성 역할 --역할 이름 사용자 역할 --역할-정책-문서 가정 파일: // 신뢰 역할-정책.json


위에서 언급한 필드에 대한 설명은 다음과 같습니다.

    • –역할 이름: 이 필드는 이 IAM 역할에 할당될 이름을 입력하는 데 사용됩니다. 'user-role' 값을 원하는 IAM 역할 이름으로 바꿉니다.
    • –역할-정책-문서 가정: 이 필드에는 명령에 지정된 경로를 지정합니다. trust-role-policy.json을 이전 섹션에서 지정한 정책 이름으로 바꿉니다.

이 명령을 실행하면 출력에 ARN, 경로, ID 등과 같은 여러 정보가 반환됩니다.


더 읽어보세요:

이 역할을 맡으면 사용자는 다음을 수행할 수 있습니다. '읽기 전용 액세스' S3 버킷을 사용한 조치. 명령은 다음과 같이 제공됩니다.

AWS IAM 연결 역할 정책 --역할 이름 사용자 역할 --정책-아른 'arn:aws:iam::aws:정책/AmazonS3ReadOnlyAccess'


위 명령에서:

    • –역할 이름: 바꾸다 ' 사용자 역할” –role-name 필드에 IAM 역할 이름 이 튜토리얼의 앞부분에서 지정한 것입니다.
    • –정책-아른: –policy-arn에 지정된 arn은 S3 버킷에 대한 ReadOnlyAccess 권한을 나타냅니다.

이 이미지에서는 역할에 S3 버킷에 대한 ReadOnlyAccess 권한이 할당되었습니다.


권한이 역할에 할당되었는지 확인하려면 다음 명령을 사용하십시오.

aws iam 목록 연결 역할 정책 --역할 이름 사용자 역할


교체 '사용자 역할' IAM 역할 이름으로.

그만큼 “AmazonS3ReadOnlyAccess” 권한이 IAM 역할에 연결되었습니다. 명령의 출력은 다음과 같습니다.

4단계: 액세스 키 생성

이 섹션에서는 사용자에 대한 액세스 키를 생성합니다. 액세스 키는 AWS 계정에 로그인하는 데 사용됩니다.

AWS IAM 생성 액세스 키 --사용자 이름 데모 사용자


교체 데모 사용자 사용자 생성 시 제공된 IAM 사용자 이름을 사용합니다.

여기서 명령어는 생성 날짜, 상태 등과 같은 추가 세부정보와 함께 액세스 키 쌍(AccessKeyId 및 비밀 액세스 키) 세트를 반환했습니다. 구하다 자습서 뒷부분에서 필요한 AccessKeyId 및 SecretAccessKey:


더 읽어보세요:

5단계: 액세스 키 구성 및 IAM 사용자 확인

액세스 키를 구성하려면 CMD에 다음 명령을 제공한 후 액세스 키 ID와 비밀 액세스 키를 입력하세요.

AWS 구성


이 섹션의 4단계에서 생성한 CLI에 액세스 키 ID와 보안 액세스 키를 제공합니다. 지역에 대해서는 기본 설정을 유지했습니다. 사용자는 기본 출력 형식에 대한 모든 출력 형식을 구성할 수 있습니다. 이 데모에서는 다음을 지정했습니다. JSON 체재:


IAM 사용자가 구성되었는지 확인하려면 CLI에 다음 명령을 제공하십시오.

AWS sts get-caller-identity


명령의 출력은 다음을 나타냅니다. '데모 사용자' 성공적으로 구성되었으며 현재 AWS 계정에 로그인되어 있습니다.


IAM 사용자가 EC2 인스턴스를 나열할 수 있고 현재 S3 버킷에 액세스할 수 없는지 확인하려면 다음 명령을 사용하십시오.

aws ec2 설명 인스턴스 --질문 '예약[*].인스턴스[*].[VpcId, InstanceId, ImageId, InstanceType]'


명령의 출력은 다음과 같습니다.


이제 다음 명령을 제공하여 사용자가 S3 버킷에 액세스할 수 있는지 확인합니다.

AWS s3 ㅋㅋㅋ


그러면 다음이 표시됩니다. '접근 불가' 사용자가 S3 버킷에 액세스할 수 없음을 나타내는 오류:

6단계: IAM 역할 위임

사용자에게는 AWS 계정 내의 IAM 역할을 나열할 권한이 있습니다. 따라서 역할을 맡으려면 먼저 다음 명령을 실행하여 ARN과 같은 필요한 정보를 획득합니다.

AWS IAM 목록 역할 --질문 '역할[?RoleName == '사용자 역할'].[RoleName, Arn]'


'RoleName' 필드에서 'user-role'을 IAM 역할 이름으로 바꿉니다.

ARN은 위에서 언급한 명령의 출력에 제공되었습니다.


이제 IAM 역할의 ARN이 있으므로 다음 명령을 사용하여 역할을 맡을 수 있습니다.

aws sts 역할 가정 --역할-아른 'arn:aws:iam::123456789012:역할/예제-역할' --역할 세션 이름 AWSCLI 세션


위 명령에서:

    • –역할-아른: –role-arn에 대해 언급된 값을 IAM 역할의 ARN으로 바꿉니다.
    • –역할 세션 이름: 사용자는 이 필드에 대해 원하는 이름을 제공할 수 있습니다.

위에서 언급한 명령을 실행하여 임시 자격 증명 세트가 반환되었습니다. 이러한 임시 자격 증명은 원하는 권한(예: ReadOnlyAccess)을 가진 IAM 역할을 맡는 데 사용됩니다. AccessKeyId 및 SecretAccessKey는 다음 임시 자격 증명을 구성하는 동안 사용됩니다.


다음은 명령 출력에 대한 간략한 설명입니다.

    • 세션토큰: 세션 토큰은 세션 기반 로그인을 만드는 데 사용됩니다. 자격 증명을 구성하는 동안 필요하므로 이 필드의 값을 저장하십시오.
    • 만료: 세션 토큰에는 만료 날짜와 시간이 있습니다. 지정된 시간이 지나면 토큰은 더 이상 사용되지 않으며 사용자는 역할을 맡을 수 없습니다.

7단계: 환경 변수 구성

임시 자격 증명을 구성하기 위해 Windows용 'set' 명령을 사용한 다음 액세스 키 ID, 비밀 액세스 키, 세션 토큰 등의 값을 제공합니다.

윈도우의 경우

세트 AWS_ACCESS_KEY_ID =RoleAccessKeyID


RoleAccessKeyID를 6단계의 명령으로 반환된 액세스 키 ID로 바꿉니다.

리눅스 OS의 경우

내보내다 AWS_ACCESS_KEY_ID =RoleAccessKeyID


RoleAccessKeyID를 6단계의 명령으로 반환된 액세스 키 ID로 바꿉니다.

액세스 키가 구성되었습니다:


다음으로 Windows용 'set' 명령을 사용하여 비밀 액세스 키를 구성하겠습니다.

윈도우의 경우

세트 AWS_SECRET_ACCESS_KEY =RoleSecretKey


RoleSecretKey를 6단계의 명령으로 반환된 비밀 액세스 키 값으로 바꿉니다.

리눅스 OS의 경우

내보내다 AWS_SECRET_ACCESS_KEY =RoleSecretKey


AWS_SECRET_ACCESS_KEY를 6단계의 명령으로 반환된 보안 액세스 키로 바꿉니다.

비밀 액세스 키가 성공적으로 구성되었습니다.


마지막으로 세션 기반 로그인을 설정하기 위해 세션 토큰을 구성합니다. 이를 위해 아래 언급된 명령을 사용하십시오.

윈도우의 경우

세트 AWS_SESSION_TOKEN =RoleSession토큰


RoleSessionToken을 6단계의 명령으로 반환된 세션 토큰 값으로 바꿉니다.

리눅스 OS의 경우

내보내다 AWS_SESSION_TOKEN =RoleSession토큰


RoleSessionToken을 6단계의 명령으로 반환된 세션 토큰 값으로 바꿉니다.

세션 토큰 값이 성공적으로 구성되었습니다.


CMD에서 세션 토큰 값을 복사하려면 다음을 누르십시오. 'CTRL + SHIFT + C' .

환경 변수를 구성한 후 다음 명령을 사용하여 사용자가 역할을 맡았는지 확인합니다.

AWS sts get-caller-identity


명령의 출력은 IAM 역할이 변경되었음을 확인합니다. 성공적으로 가정 ARN 반환은 사용자에 의한 것입니다. 'arn:aws:sts::123456789012:수임된 역할/사용자 역할/AWSCLI 세션' 대신에 'arn:aws:iam::123456789012:사용자/데모-사용자':


역할에 ReadOnlyAccess 권한이 포함되어 있으므로 사용자는 이제 버킷을 등록할 수 있어야 합니다. 이를 위해 CLI에 다음 명령을 제공합니다.

AWS s3 ㅋㅋㅋ


명령 출력에는 현재 AWS 계정 내에 구성된 모든 S3 버킷이 성공적으로 등록됩니다.


그러나 위임된 역할에는 EC2 서비스에 대한 권한이 없으므로 사용자는 EC2 서비스에 액세스할 수 없습니다. 이를 확인하려면 다음 명령을 사용하십시오.

aws ec2 설명 인스턴스 --질문 '예약[*].인스턴스[*].[VpcId, InstanceId, ImageId, InstanceType]'


이전에는 사용자가 EC2 서비스 정보에 액세스할 수 있었습니다. 그러나 위에서 언급한 명령을 실행하면 '접근 불가' 오류가 발생했습니다. 사용자가 IAM 역할을 성공적으로 맡았습니다.


이 섹션의 모든 내용입니다.

보너스 팁: 환경 변수 설정 해제

IAM 사용자(즉, 데모 사용자)로 돌아가려면 사용자는 환경 변수를 빈 문자열로 설정하여 환경 변수를 제거할 수 있습니다. 주어진 명령은 다음과 같습니다.

윈도우의 경우

세트 AWS_ACCESS_KEY_ID =
세트 AWS_SECRET_ACCESS_KEY =
세트 AWS_SESSION_TOKEN =


리눅스의 경우

아래 언급된 명령을 사용하십시오.

설정되지 않음 AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN


위에서 언급한 명령은 환경 변수의 설정을 해제합니다.


위 명령을 실행한 후 콘솔은 이제 다음을 반환해야 합니다. '데모 사용자' 가정된 역할(예: user-role) 대신 현재 로그인된 사용자로 사용됩니다. 이를 위해 다음 명령을 사용합니다.

AWS sts get-caller-identity


명령 출력은 현재 로그인한 사용자가 데모 사용자임을 나타냅니다.


마찬가지로 루트 사용자로 로그인하려면 다음을 따르십시오. “C:\Users%USERPROFILE%.aws” 경로를 클릭하고 자격 증명 파일을 클릭합니다.


자격 증명 파일 내에서 액세스 키 및 비밀 액세스 키 값을 루트 사용자의 액세스 및 비밀 액세스 키로 바꿉니다.


자격 증명이 올바르게 구성되었는지 확인하려면 CLI에 다음 명령을 제공합니다.

AWS 구성


아래 이미지에서는 루트 사용자의 액세스 키와 비밀 액세스 키가 성공적으로 구성되었음을 확인할 수 있습니다.


이것이 튜토리얼의 이 섹션의 전부입니다.

방법 2: –profile 매개변수 사용

역할을 맡는 또 다른 방법은 CLI에서 '–profile' 필드를 사용하는 것입니다. 기사의 이 섹션에서는 –profile을 통해 AWS에서 역할을 맡는 실제 구현을 제시합니다. 다음은 이에 대한 단계입니다.

1단계: IAM 사용자 생성

IAM 사용자를 생성하려면 다음 명령을 사용하여 CLI를 통해 루트 사용자 계정에 로그인합니다.

AWS 구성


자격 증명은 명령 출력에 표시된 대로 이 데모의 CLI 내에 이미 구성되어 있습니다.


더 알아보기:

IAM 사용자를 생성하려면 CLI에 다음 명령을 제공합니다.

AWS IAM 생성 사용자 --사용자 이름 프로필 사용자


사용자가 성공적으로 생성되었습니다. 아래 이미지에 표시된 대로 사용자의 ARN을 저장합니다. 이 IAM 사용자의 ARN은 이 자습서의 뒷부분에서 사용됩니다. 현재 이 IAM 사용자와 연결된 권한이 없습니다.


더 읽어보세요:

2단계: 액세스 키 생성

AWS에서는 각 사용자에게 로그인을 위한 액세스 키 쌍이 할당됩니다. 이 사용자에 대한 액세스 키를 생성하려면 다음 명령을 제공하십시오.

AWS IAM 생성 액세스 키 --사용자 이름 프로필 사용자


이 명령은 액세스 키 세트를 반환합니다. 구하다 그만큼 액세스키 ID 그리고 비밀접근키 AWS 계정에 로그인하는 동안 필요합니다.


이제 이러한 AccessKeyId 및 SecretAccessKey를 사용하여 AWS CLI에 로그인하고 리소스에 액세스하면 S3 버킷, '접근 불가' 오류가 발생합니다. 이는 현재 IAM 사용자와 연결된 권한이 없기 때문입니다. AWS CLI에 로그인하려면 다음 명령을 사용하고 앞서 생성한 액세스 키 ID 및 보안 액세스 키를 제공합니다.

AWS 구성 --프로필 프로필 사용자


교체 '프로필 사용자' 사용자를 생성하는 동안 제공한 IAM 사용자 이름을 사용합니다.

여기서는 IAM 사용자로 AWS CLI에 성공적으로 로그인했습니다.


이 사용자에게 S3 버킷에 대한 읽기 전용 권한이 있는지 확인하려면 CLI에 다음 명령을 제공하십시오.

AWS s3 ㅋㅋㅋ --프로필 프로필 사용자


profile-user를 사용자 생성 시 제공한 IAM 사용자 이름으로 바꿉니다.

이 사용자는 루트 사용자로부터 어떤 권한도 할당받지 않았으므로 ' 접근 불가 ” 오류:

3단계: 신뢰 정책 및 IAM 역할 생성

신뢰 정책은 사용자 또는 AWS 리소스가 역할을 맡고 권한을 획득하기 위해 신뢰할 수 있는 개체인지 여부를 결정합니다. 이 신뢰 관계는 권한 정책 내에서 IAM 사용자 또는 AWS 리소스의 ARN을 지정하여 생성됩니다.

IAM 내에서 신뢰 정책을 생성하려면 CLI에 다음 명령을 제공합니다.

윈도우의 경우

메모장 trust-policy.json


교체 신뢰 정책.json 정책에 대한 선호 이름을 입력하세요.

리눅스 OS의 경우

왜냐하면 신뢰 역할-정책.json


교체 신뢰 정책.json 정책에 대한 선호 이름을 입력하세요.

사용자는 자신이 선호하는 텍스트 편집기를 사용할 수 있습니다. 이 데모에서는 메모장을 사용합니다.


그러면 신뢰 정책을 생성하기 위한 메모장이 열립니다. 메모장에 다음 정책을 붙여넣고 키를 누릅니다. “CTRL + S” 키보드에서 변경 사항을 적용하고 저장하려면 다음을 수행하세요.

{
'버전' : '2012-10-17' ,
'성명' : {
'효과' : '허용하다' ,
'주요한' : {
'AWS' : 'arn:aws:iam::012345678910:사용자/프로필-사용자'
} ,
'행동' : 'sts:역할 가정'
}
}


위 정책에서: AWS: 'arn:aws:iam::012345678910:user/policy-user' 값을 이 섹션 앞부분에서 생성한 IAM 사용자의 ARN으로 바꿉니다.

정책이 메모장 내에서 편집되었습니다.


다음으로 IAM 역할을 생성하고 여기에 위의 신뢰 정책을 연결하겠습니다. IAM 역할을 생성하려면 다음 명령을 사용합니다.

AWS IAM 생성 역할 --역할 이름 나의 역할 --역할-정책-문서 가정 파일: // 신뢰 정책.json


위에서 언급한 명령에서:

    • –역할 이름: 교체 '나의 역할' 원하는 IAM 역할 이름을 사용하세요.
    • –역할-정책-문서 가정: 이 필드에서 용어를 바꾸십시오. “신뢰-정책.json” IAM 신뢰 정책 이름으로

IAM 역할이 성공적으로 생성되었습니다. IAM 역할을 저장합니다. 다음 이미지에 강조 표시된 대로 IAM 역할의 ARN을 저장합니다. 이 ARN은 사용자 프로필을 구성하는 동안 사용됩니다.


IAM에 연결된 신뢰 정책은 사용자가 역할을 맡을 수 있는지 여부를 식별합니다. 권한 정책은 IAM 역할에 AWS 서비스로 특정 작업을 수행하는 데 필요한 권한이 있는지 여부를 결정합니다.

신뢰 정책이 IAM 역할에 연결되었으므로 다음 단계는 권한 정책을 IAM 역할에 연결하는 것입니다. 아래 언급된 명령은 IAM 역할에 권한 정책을 연결하는 데 사용됩니다.

AWS IAM 연결 역할 정책 --역할 이름 나의 역할 --정책-아른 'arn:aws:iam::aws:정책/AmazonS3ReadOnlyAccess'


여기에서는 CLI를 통해 권한 정책이 IAM 역할에 연결되었습니다.

4단계: 프로필 구성

사용자가 이 역할을 맡을 수 있도록 먼저 AWS 자격 증명 내에서 이 프로필을 구성합니다. 이러한 임시 자격 증명을 연결하려면 다음 명령을 제공합니다.

메모장 ~ / .aws / 구성


보너스 팁: 메모장에서 '경로가 지정되지 않음' 문제 해결

구성 파일에는 AWS CLI의 [기본] 설정이 포함됩니다. 그러나 메모장에 '지정된 경로를 찾을 수 없습니다.'라는 메시지가 표시되면 아래 명령을 입력하십시오.

메모장 .aws / 구성


Linux 사용자는 '왜냐하면' 프로필 구성을 위한 편집기입니다. 사용자는 원하는 편집기를 사용하여 로컬 시스템에서 AWS 구성 파일을 열 수 있습니다.


메모장에 열린 구성 파일 내에서 다음 변경 사항을 편집합니다.

[ 프로필 프로필-사용자 ]
역할_아른 = arn:aws:iam::012345678910:역할 / 나의 역할
소스_프로필 =프로필-사용자


위의 스니펫에서:

    • 역할_아른: 'arn:aws:iam::012345678910:role/myrole' 값을 IAM 역할의 ARN으로 바꿉니다.
    • 소스_프로필: 이 필드에는 이 방법의 1단계에서 생성된 IAM 사용자의 이름을 제공합니다.

필요한 사항을 변경한 후 다음을 누릅니다. “CTRL + S” 키보드에서 변경 사항을 적용하고 저장하려면 다음을 수행하세요.


이제 사용자가 S3 버킷을 나열할 수 있는지 여부를 확인하려면 CLI에 다음 명령을 제공하십시오.

AWS s3 ㅋㅋㅋ --프로필 프로필 사용자


위 명령에서: –프로필-사용자: 이 필드에서 'profile-use' 값을 구성 파일에 지정한 이름으로 바꾸십시오.

구성 파일 내에 'profile-user'를 지정했으므로 CLI의 명령과 동일한 이름을 사용합니다. 이전에는 권한이 할당되지 않아 사용자가 AWS의 S3 서비스에 액세스할 수 없었습니다. IAM 역할에는 S3 버킷의 'ReadOnlyAccess' 권한이 있으므로 이 역할을 맡으면 사용자는 S3 대시보드에서 버킷을 나열할 수 있습니다.


이것이 튜토리얼의 이 방법의 전부입니다.

방법 3: MFA(Multi-Factor Authentication) 사용

Multi-Factor Authentication을 활성화하면 사용자는 사용자 계정에 대한 추가 보안 계층을 구성할 수 있습니다. MFA를 활성화하면 권한이 없는 사용자가 비밀번호와 사용자 이름을 제공하더라도 사용자의 계정에 액세스할 수 없습니다. MFA는 계정에 로그인하는 데 필요한 6자리 코드입니다. 다단계 인증에 대해 자세히 알아보려면 다음 문서를 참조하세요.

다음은 CLI를 통해 MFA 역할을 맡는 단계입니다.

1단계: IAM 사용자 생성 및 MFA 활성화

이 단계에서 사용자는 CLI를 사용하여 사용자를 생성하거나 AWS Management Console에 액세스할 수 있습니다. 다음 명령을 사용하여 루트 사용자 계정에 로그인합니다.

AWS 구성


명령의 출력은 다음과 같습니다.


사용자를 생성하려면 CLI에 다음 명령을 제공합니다.

AWS IAM 생성 사용자 --사용자 이름 MFA 사용자


위 명령에서: -사용자 이름: 교체 'mfa-사용자' 선택한 IAM 사용자 이름으로.

사용자가 성공적으로 생성되었습니다. 이 섹션의 뒷부분에서 필요하므로 사용자의 ARN을 저장합니다. 현재 이 사용자에게는 어떤 권한도 할당되지 않았습니다.


MFA를 활성화하려면 AWS Management Console을 방문하여 IAM 서비스를 검색하세요. 표시된 결과에서 해당 항목을 클릭하세요.


IAM 서비스의 왼쪽 탐색 창에서 사용자 옵션을 클릭합니다. 사용자 대시보드에서 사용자 이름을 클릭하여 MFA를 구성합니다.


다음 인터페이스에서 “보안 자격 증명” 옵션:


아래로 스크롤하여 다단계 인증 섹션을 클릭하고 “MFA 장치 할당” 단추:


제공 의미있는 이름 에서 장치 이름 표시된 인터페이스의 텍스트 필드:


MFA 디바이스 섹션까지 아래로 스크롤합니다. 사용자에게는 보안 키 또는 하드웨어 TOTP 토큰을 통해 QR 코드를 스캔하는 등 MFA를 활성화하기 위한 다양한 옵션이 제공됩니다. 이 데모에서는 다음을 선택합니다. “인증기 앱” 옵션:


탭하세요. '다음' 계속 진행하려면 인터페이스 하단의 버튼을 누르세요.


다음을 클릭하세요. “QR 코드 보여줘” 아래 이미지와 같이 :


실행 QR 코드를 스캔하려면 모바일이나 노트북에 애플리케이션을 설치하세요. 탭하세요. “+” Symantec VIP 인터페이스의 옵션:


Play 스토어에서 Symantec VIP는 VIP Access로 명명됩니다.

Symantec VIP의 다음 인터페이스에서 QR 코드 스캔 인터페이스 하단에 있는 버튼:


AWS MFA에서 QR 코드 스캔 인증기의 앱 인터페이스 표시됩니다. 이 코드는 IAM 사용자 콘솔에 로그인하는 데 필요한 일련의 코드를 생성합니다.


Symantec VIP 앱은 다음을 생성합니다. 6자리 OTP QR코드를 스캔한 후 이 코드는 다음과 같은 경우에도 계속 표시됩니다. 30 초 . 아래 스크린샷은 생성된 두 가지 코드를 보여줍니다.


코드를 MFA 코드 1 그리고 MFA 코드 2 MFA 인증 앱 인터페이스의 텍스트 필드. 다음을 클릭하세요. “MFA 추가” 기능을 활성화하려면 나중에 버튼을 누르세요.


IAM 사용자에 대해 MFA가 성공적으로 활성화되었습니다. 이는 인증기관을 통해 확인할 수 있습니다. “다단계 인증(MFA)” 섹션 “보안 자격 증명” 탭의 IAM 사용자 . 이 섹션에서 역할을 맡는 동안 필요한 식별자 값을 저장합니다.

2단계: 사용자와 정책 연결

사용자가 역할을 맡으려면 사용자는 IAM 역할을 나열하여 맡을 역할과 역할을 맡는 데 필요한 권한을 결정할 수 있어야 합니다. 사용자에게 필요한 권한을 부여하려면 다음을 따르십시오. 이 튜토리얼의 방법 1

3단계: 신뢰 정책 및 IAM 역할 생성

다음 단계는 사용자가 신뢰할 수 있는 엔터티인지 여부를 결정하는 신뢰 정책을 만드는 것입니다. 그러면 이 신뢰 정책이 IAM 역할에 연결됩니다. 신뢰 정책과 IAM 역할을 생성하려면 명령 프롬프트로 이동하여 다음을 따르세요. 이 도움말의 방법 1을 참조하세요.

4단계: 액세스 키 생성

사용자에게 권한을 부여하고 인증하려면 AWS 플랫폼 전체에서 전역적으로 고유한 액세스 키 쌍이 생성됩니다. 이 키 쌍은 AWS 계정에 로그인할 때 사용됩니다. IAM 사용자에 대한 액세스 키를 생성하려면 다음을 따르십시오. 이 문서의 방법 1 중 하나입니다.

5단계: 자격 증명 구성

AWS 사용자는 자격 증명이 올바르게 구성된 경우에만 AWS 리소스 및 서비스에 액세스할 수 있습니다. 이 방법 섹션에서는 명령줄 인터페이스에 액세스 키와 비밀 액세스 키를 제공하여 IAM 사용자의 자격 증명을 구성합니다. 이를 위해 다음을 따르십시오. 이 튜토리얼의 방법 1 중 하나입니다.

6단계:  IAM 역할 맡기

IAM 역할을 성공적으로 연결하고 신뢰 정책을 구현한 후 사용자는 이제 IAM 역할을 맡을 수 있습니다. 이를 위해 CLI에 다음 명령을 제공합니다.

AWS IAM 생성 액세스 키 --사용자 이름 MFA 사용자


여기서는 IAM 사용자에 대한 키가 성공적으로 생성되었습니다. AWS 계정에 로그인하는 데 필요한 AccessKeyId 및 SecretAccessKey를 저장합니다.


다음 단계는 AWS CLI 내에서 액세스 키를 구성하는 것입니다. CLI를 구성하려면 아래 언급된 명령을 사용하십시오.

AWS 구성


구성을 위해 CLI에 액세스 키와 비밀 액세스 키를 제공합니다.


IAM 사용자가 AWS CLI에 로그인했는지 확인하려면 다음 명령을 사용하십시오.

AWS sts get-caller-identity


명령의 출력은 다음과 같이 제공되며 이는 사용자가 AWS 콘솔에 성공적으로 로그인했음을 나타냅니다.


사용자에게는 AWS 계정 내의 IAM 역할을 나열할 권한이 있습니다. 아래 제공된 명령은 IAM 역할을 나열하는 데 사용됩니다.

AWS IAM 목록 역할 --질문 '역할[?RoleName == 'mfa-role'].[RoleName, Arn]


위 명령에서: 역할이름: 이 필드 내에서 'mfa-role' 값을 IAM 역할 이름으로 바꿉니다.

명령의 출력은 다음과 같습니다.


MFA를 통해 IAM 역할을 수임하려면 일련 번호 및 토큰 코드와 같은 추가 매개변수와 함께 수임 역할 명령을 사용하십시오. CLI에 다음 명령을 제공합니다.

aws sts 역할 가정 --역할-아른 'arn:aws:iam::123456789012:역할/m-역할' --역할 세션 이름 AWSCLI 세션 --일련번호 'arn:aws:iam::012345678910:mfa/관리 장치' --토큰 코드 '123456'


위 명령에서:

    • –역할-아른: 이 필드의 값을 IAM 역할의 ARN으로 바꿉니다.
    • –역할 세션 이름: 이 필드에서 사용자는 원하는 세션 이름을 제공할 수 있습니다.
    • –일련번호: 이 필드의 값을 이전에 저장한 MFA 인터페이스의 식별자 값으로 바꿉니다.
    • –토큰 코드: 이 값은 Symantec VIP 인터페이스에 표시된 현재 코드로 대체됩니다.

현재 Symantec VIP에 표시된 코드는 다음과 같습니다. 명령의 –token-code 값에 동일한 코드가 사용됩니다.


명령의 출력에는 세션 토큰, 액세스 키, 비밀 액세스 키 등과 같은 임시 자격 증명이 포함됩니다.

7단계: 환경 변수 구성

반환된 액세스 키와 세션 토큰은 이제 세션 기반 로그인을 설정하고 역할을 맡는 데 사용됩니다. 환경 구성을 위한 자세한 구현은 다음에서 설명합니다. 방법 1의

마지막 생각들

CLI를 사용하여 역할을 위임하려면 STS(보안 토큰 서비스), –profile 매개변수 또는 MFA(Multi-Factor Authentication)를 통한 세 가지 방법이 있습니다. 사용자가 역할을 맡으려면 먼저 신뢰 정책을 설정해야 합니다. 이 신뢰 정책은 사용자가 신뢰할 수 있는 엔터티인지 여부를 결정합니다. 이 기능은 IT 전문가와 개인의 보안 문제를 해결하기 때문에 필요합니다. 또한 사용자는 필요한 권한이 있는 경우에만 역할을 맡을 수 있습니다.

사용자가 AWS에서 역할을 맡으면 세션 기반 로그인이 생성되어 원하는 권한을 가진 사용자에게 제한된 시간 액세스를 제공합니다. 특정 시간 이후 만료되는 토큰이 생성되므로 사용자는 더 이상 AWS 리소스로 관리 작업을 수행할 수 없습니다. 이 문서에서는 AWS CLI에서 역할을 맡는 세 가지 방법의 실제 구현을 제공합니다.