써드파티 ID 공급자용 역할 생성

써드파티 ID 공급자용 역할 생성

AWS 계정에 IAM 사용자를 만드는 대신 ID 공급자를 사용할 수 있어요. ID 공급자(IdP)를 사용하면 AWS 외부에서 사용자 자격 증명을 관리하고, 이 외부 사용자 자격 증명에 계정의 AWS 리소스에 접근할 권한을 부여할 수 있어요. 페더레이션과 ID 공급자에 대한 자세한 내용은 ID 공급자와 AWS로의 페더레이션 문서를 참고하세요.

출처: 문서

본문

OIDC 및 SAML 페더레이션 주체용 역할 생성 (콘솔)

역할 생성 절차는 써드파티 공급자 선택에 따라 다릅니다:

페더레이션 접근용 역할 생성 (AWS CLI)

AWS CLI에서 지원되는 ID 공급자(OIDC 또는 SAML)용 역할을 만드는 단계는 동일해요. 차이는 사전 조건 단계에서 만드는 신뢰 정책의 내용입니다. 사용 중인 공급자 유형에 대한 사전 조건(Prerequisites) 섹션의 단계부터 시작하세요.

AWS CLI로 역할을 만드는 것은 여러 단계를 포함합니다. 콘솔로 역할을 만들 때는 많은 단계가 자동으로 수행되지만, AWS CLI에서는 각 단계를 직접 명시적으로 수행해야 해요. 역할을 만든 다음 역할에 권한 정책을 할당해야 합니다. 선택적으로 역할에 권한 경계(permissions boundary)를 설정할 수도 있어요.

역할 생성 (AWS CLI)

  1. 역할을 만듭니다: aws iam create-role
  2. 역할에 권한 정책을 연결합니다: aws iam attach-role-policy 또는 역할에 인라인 권한 정책을 만듭니다: aws iam put-role-policy
  3. (선택) 태그를 연결해 역할에 사용자 지정 속성을 추가합니다: aws iam tag-role 자세한 내용은 IAM 역할 태그 관리 (AWS CLI 또는 AWS API) 문서를 참고하세요.
  4. (선택) 역할에 권한 경계를 설정합니다: aws iam put-role-permissions-boundary 권한 경계는 역할이 가질 수 있는 최대 권한을 통제합니다. 권한 경계는 AWS의 고급 기능입니다.

다음 예제는 간단한 환경에서 ID 공급자 역할을 만드는 처음 두 단계이자 가장 일반적인 단계를 보여줍니다. 이 예제는 123456789012 계정의 모든 사용자가 example_bucket Amazon S3 버킷을 볼 수 있도록 역할을 수임하는 것을 허용합니다. 이 예제는 Windows를 실행하는 컴퓨터에서 AWS CLI를 실행하고 AWS CLI를 자격 증명으로 이미 구성했다고 가정합니다. 자세한 내용은 AWS Command Line Interface 구성 문서를 참고하세요.

다음 예제 신뢰 정책은 사용자가 Amazon Cognito로 로그인하는 모바일 앱을 위해 설계되었습니다. 이 예제에서 us-east:12345678-ffff-ffff-ffff-123456은 Amazon Cognito가 할당한 자격 증명 풀 ID를 나타냅니다.

{
    "Version":"2012-10-17",
    "Statement": {
        "Sid": "RoleForCognito",
        "Effect": "Allow",
        "Principal": {"Federated": "cognito-identity.amazonaws.com"},
        "Action": "sts:AssumeRoleWithWebIdentity",
        "Condition": {"StringEquals": {"cognito-identity.amazonaws.com:aud": "us-east:12345678-ffff-ffff-ffff-123456"}}
    }
}

다음 권한 정책은 역할을 수임하는 모든 사람이 example_bucket Amazon S3 버킷에서 ListBucket 작업만 수행할 수 있게 허용합니다.

{
  "Version":"2012-10-17",
  "Statement": {
    "Effect": "Allow",
    "Action": "s3:ListBucket",
    "Resource": "arn:aws:s3:::example_bucket"
  }
}

이 Test-Cognito-Role 역할을 만들려면 먼저 이전 신뢰 정책을 trustpolicyforcognitofederation.json이라는 이름으로, 이전 권한 정책을 permspolicyforcognitofederation.json이라는 이름으로 로컬 C: 드라이브의 policies 폴더에 저장해야 합니다. 그런 다음 다음 명령으로 역할을 만들고 인라인 정책을 연결할 수 있어요.

# 역할을 만들고, 계정의 사용자가 역할을 수임할 수 있게 해주는 신뢰 정책을 연결합니다.
$ aws iam create-role --role-name Test-Cognito-Role --assume-role-policy-document file://C:\policies\trustpolicyforcognitofederation.json

# 역할이 무엇을 할 수 있는지 지정하는 권한 정책을 역할에 연결합니다.
aws iam put-role-policy --role-name Test-Cognito-Role --policy-name Perms-Policy-For-CognitoFederation --policy-document file://C:\policies\permspolicyforcognitofederation.json

페더레이션 접근용 역할 생성 (AWS API)

AWS CLI에서 지원되는 ID 공급자(OIDC 또는 SAML)용 역할을 만드는 단계는 동일해요. 차이는 사전 조건 단계에서 만드는 신뢰 정책의 내용입니다. 사용 중인 공급자 유형에 대한 사전 조건(Prerequisites) 섹션의 단계부터 시작하세요.

역할 생성 (AWS API)

  1. 역할을 만듭니다: CreateRole
  2. 역할에 권한 정책을 연결합니다: AttachRolePolicy 또는 역할에 인라인 권한 정책을 만듭니다: PutRolePolicy
  3. (선택) 태그를 연결해 역할에 사용자 지정 속성을 추가합니다: TagRole 자세한 내용은 IAM 역할 태그 관리 (AWS CLI 또는 AWS API) 문서를 참고하세요.
  4. (선택) 역할에 권한 경계를 설정합니다: PutRolePermissionsBoundary 권한 경계는 역할이 가질 수 있는 최대 권한을 통제합니다. 권한 경계는 AWS의 고급 기능입니다.

더 알아보기 (Learn more)