SAML 2.0 페더레이션용 역할 생성
SAML 2.0 페더레이션용 역할 생성 (콘솔)
AWS 계정에 IAM 사용자를 만드는 대신 SAML 2.0 페더레이션을 사용할 수 있어요. ID 공급자(IdP)를 사용하면 AWS 외부에서 사용자 자격 증명을 관리하고, 이 외부 사용자 자격 증명에 계정의 AWS 리소스에 접근할 권한을 부여할 수 있어요. 페더레이션과 ID 공급자에 대한 자세한 내용은 ID 공급자와 AWS로의 페더레이션 문서를 참고하세요.
출처: 문서
본문
참고 페더레이션 복원력을 개선하려면 여러 SAML 로그인 엔드포인트를 지원하도록 IdP와 AWS 페더레이션을 구성할 것을 권장해요. 자세한 내용은 AWS Security Blog의 장애 조치를 위해 리전별 SAML 엔드포인트 사용 방법 기사를 참고하세요.
SAML용 역할 생성 사전 조건
SAML 2.0 페더레이션용 역할을 만들기 전에 먼저 다음 사전 조건 단계를 완료해야 합니다.
SAML 2.0 페더레이션용 역할 생성을 위한 준비
- SAML 기반 페더레이션용 역할을 만들기 전에 IAM에 SAML 공급자를 만들어야 합니다. 자세한 내용은 IAM에서 SAML ID 공급자 생성 문서를 참고하세요.
- SAML 2.0으로 인증된 사용자가 수임할 역할의 정책을 준비합니다. 다른 역할과 마찬가지로 SAML 페더레이션용 역할에는 두 개의 정책이 포함됩니다. 하나는 누가 역할을 수임할 수 있는지 지정하는 역할 신뢰 정책이고, 다른 하나는 SAML 페더레이션 주체가 접근할 수 있거나 접근할 수 없는 AWS 작업과 리소스를 지정하는 IAM 권한 정책입니다. 역할의 신뢰 정책을 만들 때 당신의 애플리케이션만 역할을 수임할 수 있도록 보장하는 세 가지 값을 사용해야 합니다:
Action요소에는sts:AssumeRoleWithSAML작업을 사용합니다.Principal요소에는 문자열{"Federated":ARNofIdentityProvider}을 사용합니다.ARNofIdentityProvider를 1단계에서 만든 SAML ID 공급자의 ARN으로 교체하세요.Condition요소에는StringEquals조건을 사용해 SAML 응답의saml:aud속성이 콘솔에 로그인할 때 브라우저가 표시하는 URL과 일치하는지 테스트합니다. 이 로그인 엔드포인트 URL은 ID 공급자의 SAML 수신자(recipient) 속성입니다. 특정 리전의 로그인 URL을 포함할 수 있어요. AWS는 페더레이션 복원력을 개선하기 위해 글로벌 엔드포인트 대신 리전별 엔드포인트를 사용할 것을 권장합니다. 가능한region-code값 목록은 AWS 로그인 엔드포인트의 Region 열을 참고하세요. SAML 암호화가 필요한 경우 로그인 URL에 AWS가 SAML 공급자에 할당한 고유 식별자가 포함되어야 합니다. IAM 콘솔에서 ID 공급자를 선택해 상세 페이지를 표시하면 고유 식별자를 볼 수 있습니다.https://region-code.signin.aws.amazon.com/saml/acs/IdP-ID`` 다음 예제 신뢰 정책은 SAML 페더레이션 사용자를 위해 설계되었습니다:
{
"Version":"2012-10-17",
"Statement": {
"Effect": "Allow",
"Action": "sts:AssumeRoleWithSAML",
"Principal": {
"Federated": "arn:aws:iam::111122223333:saml-provider/PROVIDER-NAME"
},
"Condition": {
"StringEquals": {
"SAML:aud": "https://region-code.signin.aws.amazon.com/saml"
}
}
}
}
주체 ARN을 IAM에서 만든 SAML 공급자의 실제 ARN으로 교체하세요. 여기에는 자체 계정 ID와 공급자 이름이 포함됩니다.
SAML용 역할 생성
사전 조건 단계를 완료한 후 SAML 기반 페더레이션용 역할을 만들 수 있어요.
SAML 기반 페더레이션용 역할 생성
- AWS Management Console에 로그인하고 https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.
- IAM 콘솔의 탐색 창에서 역할(Roles) 을 선택한 다음 역할 생성(Create role) 을 선택합니다.
- SAML 2.0 페더레이션(SAML 2.0 federation) 역할 유형을 선택합니다.
- SAML 공급자 선택(Select a SAML provider) 에서 역할의 공급자를 선택합니다.
- SAML 2.0 액세스 수준 방법을 선택합니다.
- 프로그래매틱 접근만 허용(Allow programmatic access only) 을 선택해 AWS API 또는 AWS CLI에서 프로그래매틱하게 수임할 수 있는 역할을 만듭니다.
- 프로그래매틱 및 AWS Management Console 접근 허용(Allow programmatic and AWS Management Console access) 을 선택해 프로그래매틱 방식과 AWS Management Console에서 수임할 수 있는 역할을 만듭니다.
두 방법으로 만들어진 역할은 비슷하지만, 콘솔에서도 수임할 수 있는 역할에는 특정 조건이 있는 신뢰 정책이 포함됩니다. 그 조건은 SAML 오디언스(
SAML:aud속성)가 SAML 공급자의 AWS 로그인 엔드포인트로 설정되도록 명시적으로 보장합니다.
- 속성 정의 절차는 접근 유형에 따라 다릅니다.
- 프로그래매틱 접근용 역할을 만드는 경우 속성(Attribute) 목록에서 속성을 선택합니다. 그런 다음 값(Value) 상자에 역할에 포함할 값을 입력합니다. 이렇게 하면 지정한 속성을 SAML 인증 응답(어서션)에 포함하는 ID 공급자의 사용자로 역할 접근이 제한됩니다. 역할이 조직의 사용자 하위 집합으로 제한되도록 보장하려면 속성을 하나 이상 지정해야 합니다.
- 프로그래매틱 및 AWS Management Console 접근용 역할을 만드는 경우 로그인 엔드포인트(Sign-in endpoints) 섹션은 콘솔에 로그인할 때 브라우저가 표시하는 URL을 정의합니다. 이 엔드포인트는 ID 공급자의 SAML 수신자 속성이며, saml:aud 컨텍스트 키에 매핑됩니다. 자세한 내용은 인증 응답용 SAML 어서션 구성 문서를 참고하세요.
- 리전별 엔드포인트(Regional endpoints) 또는 비리전 엔드포인트(Non-regional endpoint) 를 선택합니다. 페더레이션 복원력을 개선하려면 여러 리전별 SAML 로그인 엔드포인트를 사용할 것을 권장합니다.
- 리전(Regions) 에서 SAML 공급자가 AWS 로그인을 지원하는 리전을 선택합니다.
- 고유 식별자를 포함할 로그인 URL(Sign-in URLs to include unique identifiers) 에서 로그인 엔드포인트에 AWS가 SAML ID 공급자에 할당한 고유 식별자를 포함할지 선택합니다. 이 옵션은 암호화된 SAML 어서션에 필요합니다. 자세한 내용은 SAML 2.0 페더레이션 문서를 참고하세요.
- 신뢰 정책에 속성 관련 조건을 더 추가하려면 조건 (선택)(Condition (optional)) 을 선택하고 추가 조건을 선택한 다음 값을 지정합니다.
참고 목록에는 가장 일반적으로 사용되는 SAML 속성이 포함되어 있습니다. IAM은 조건을 만드는 데 사용할 수 있는 추가 속성을 지원합니다. 지원되는 속성 목록은 SAML 페더레이션용으로 사용 가능한 키 문서를 참고하세요. 목록에 없는 지원되는 SAML 속성에 대한 조건이 필요하다면 해당 조건을 수동으로 추가할 수 있어요. 그러려면 역할을 만든 후 신뢰 정책을 편집하세요.
- SAML 2.0 신뢰 정보를 검토한 다음 다음(Next) 을 선택합니다.
- IAM이 계정의 AWS 관리형 및 고객 관리형 정책 목록을 표시합니다. 권한 정책에 사용할 정책을 선택하거나 정책 생성(Create policy) 을 선택해 새 브라우저 탭을 열고 처음부터 새 정책을 만듭니다. 자세한 내용은 IAM 정책 생성 문서를 참고하세요. 정책을 만든 후 그 탭을 닫고 원래 탭으로 돌아갑니다. SAML 페더레이션 사용자가 갖기를 원하는 권한 정책 옆의 확인란을 선택합니다. 원하면 지금은 정책을 선택하지 않고 나중에 역할에 정책을 연결할 수도 있어요. 기본적으로 역할에는 권한이 없습니다.
- (선택) 권한 경계(permissions boundary)를 설정합니다. 이는 고급 기능입니다. 권한 경계(Permissions boundary) 섹션을 열고 권한 경계로 최대 역할 권한 통제(Use a permissions boundary to control the maximum role permissions) 를 선택합니다. 권한 경계에 사용할 정책을 선택합니다.
- 다음(Next) 을 선택합니다.
- 다음: 검토(Next: Review) 를 선택합니다.
- 역할 이름(Role name) 에 역할 이름을 입력합니다. 역할 이름은 AWS 계정 내에서 고유해야 합니다. 대소문자는 구분하지 않습니다. 예를 들어
PRODROLE과prodrole이라는 이름의 역할을 둘 다 만들 수 없습니다. 다른 AWS 리소스가 역할을 참조할 수 있으므로 역할을 만든 후에는 이름을 편집할 수 없습니다. - (선택) 설명(Description) 에 새 역할에 대한 설명을 입력합니다.
- 1단계: 신뢰할 개체 선택(Step 1: Select trusted entities) 또는 2단계: 권한 추가(Step 2: Add permissions) 섹션에서 편집(Edit) 을 선택해 역할의 사용 사례와 권한을 편집합니다.
- (선택) 키-값 쌍으로 태그를 연결해 역할에 메타데이터를 추가합니다. IAM에서 태그 사용에 대한 자세한 내용은 AWS Identity and Access Management 리소스 태그 문서를 참고하세요.
- 역할을 검토한 다음 역할 생성(Create role) 을 선택합니다.
역할을 만든 후 ID 공급자 소프트웨어에 AWS에 대한 정보를 구성해 SAML 신뢰를 완료합니다. 이 정보에는 SAML 페더레이션 사용자가 사용하려는 역할이 포함됩니다. 이것은 IdP와 AWS 사이의 신뢰 당사자(rplying party) 신뢰를 구성하는 것이라고 합니다. 자세한 내용은 신뢰 당사자 신뢰를 사용해 SAML 2.0 IdP 구성 및 클레임 추가 문서를 참고하세요.