

# 타사 ID 공급자에 대한 역할 생성
<a name="id_roles_create_for-idp"></a>

AWS 계정에 속하는 IAM 사용자를 생성하는 대신에 자격 증명 공급자를 사용할 수 있습니다. 자격 증명 공급자(IdP)를 사용하면 AWS 외부의 사용자 자격 증명을 관리할 수 있고 이 외부 사용자 자격 증명에 계정의 AWS 리소스에 대한 사용 권한을 부여할 수 있습니다. 연동 및 자격 증명 공급자에 대한 자세한 내용은 [ID 공급자 및 AWS로의 페더레이션](id_roles_providers.md) 섹션을 참조하세요.

## OIDC 및 SAML 페더레이션 보안 주체에 대한 역할 생성(콘솔)
<a name="roles-creatingrole-federated-users-console"></a>

페더레이션 사용자의 역할을 생성하는 절차는 타사 공급자 선택에 따라 다릅니다.
+ OIDC(OpenID Connect)에 대한 내용은 [OpenID Connect 페더레이션을 위한 역할 생성(콘솔)](id_roles_create_for-idp_oidc.md) 항목을 참조하세요.
+ SAML 2.0은 [SAML 2.0 페더레이션을 위한 역할 생성(콘솔)](id_roles_create_for-idp_saml.md) 섹션을 참조하세요.

## 페더레이션 액세스의 역할 만들기(AWS CLI)
<a name="roles-creatingrole-identityprovider-cli"></a>

AWS CLI에서 지원되는 자격 증명 공급자(OIDC 또는 SAML)의 역할을 만드는 절차는 동일합니다. 차이는 필수 선행 단계에서 생성하는 신뢰 정책의 내용에 있습니다. 사용하고 있는 공급자의 유형에 대한 **필수 선행 조건** 섹션에 나와 있는 절차에서부터 시작하세요.
+ OIDC 공급자의 경우 [OIDC 역할 생성을 위한 사전 조건](id_roles_create_for-idp_oidc.md#idp_oidc_Prerequisites) 섹션을 참조하세요.
+ SAML 공급자의 경우 [SAML 역할을 생성하기 위한 사전 조건](id_roles_create_for-idp_saml.md#idp_saml_Prerequisites) 섹션을 참조하세요.

AWS CLI에서 역할을 만들려면 여러 단계를 거쳐야 합니다. 콘솔을 사용하여 역할을 만들 때는 많은 단계가 자동으로 수행되지만 AWS CLI를 사용하면 각 단계를 직접 명시적으로 수행해야 합니다. 역할을 만든 다음 권한 정책을 역할에 할당해야 합니다. 선택적으로 역할에 대한 [권한 경계](access_policies_boundaries.md)를 설정할 수 있습니다.

**역할 생성(AWS CLI)**

1. 역할 생성: [aws iam create-role](https://docs.aws.amazon.com/cli/latest/reference/iam/create-role.html)

1. 역할에 권한 정책 연결: [aws iam attach-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/attach-role-policy.html)

    또는

   역할을 위한 인라인 권한 정책 생성: [aws iam put-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/put-role-policy.html)

1. (선택 사항) 태그를 연결하여 사용자 지정 속성을 역할에 추가: [aws iam tag-role](https://docs.aws.amazon.com/cli/latest/reference/iam/tag-role.html)

   자세한 내용은 [IAM 역할의 태그 관리(AWS CLI 또는 AWS API)](id_tags_roles.md#id_tags_roles_procs-cli-api) 섹션을 참조하세요.

1. (선택 사항) 역할([aws iam put-role-permissions-boundary](https://docs.aws.amazon.com/cli/latest/reference/iam/put-role-permissions-boundary.html))에 대한 [권한 경계](access_policies_boundaries.md)를 설정합니다.

   이 권한 경계는 역할이 가질 수 있는 최대 권한을 관리합니다. 권한 경계는 고급 AWS 기능입니다.

다음 예는 단순한 환경에서 자격 증명 공급자를 생성하는 가장 일반적인 단계 중 첫 두 단계를 보여줍니다. 이 예제는 `123456789012` 계정에 있는 모든 사용자가 역할을 수임하고 `example_bucket` Amazon S3 버킷을 볼 수 있도록 허용합니다. 또한 이 예는 Windows가 구동중인 컴퓨터에서 AWS CLI를 실행하고 있으며 자격 증명으로 AWS CLI를 이미 구성했다고 가정합니다. 자세한 내용은 [AWS Command Line Interface 구성](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) 섹션을 참조하세요.

다음 예는 사용자가 Amazon Cognito를 사용하여 로그인하는 경우 모바일 앱에 대해 설계되는 신뢰 정책을 보여줍니다. 이 예제에서 {{us-east:12345678-ffff-ffff-ffff-123456}}은 Amazon Cognito에 의해 할당된 자격 증명 풀 ID를 나타냅니다.

------
#### [ JSON ]

****  

```
{
    "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` 작업만 수행하도록 허용합니다.

------
#### [ JSON ]

****  

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

------

이 `Test-Cognito-Role` 역할을 생성하기 위해서는 이전 신뢰 정책을 `trustpolicyforcognitofederation.json` 이름으로 이전 권한 정책을 `permspolicyforcognitofederation.json` 이름으로 로컬 `policies` 드라이브의 `C:` 폴더에 먼저 저장해야 합니다. 그러고 나면 다음 명령을 사용하여 역할을 만들고 인라인 정책을 연결합니다.

```
# Create the role and attach the trust policy that enables users in an account to assume the role.
$ aws iam create-role --role-name Test-Cognito-Role --assume-role-policy-document file://C:\policies\trustpolicyforcognitofederation.json

# Attach the permissions policy to the role to specify what it is allowed to do.
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)
<a name="roles-creatingrole-identityprovider-api"></a>

AWS CLI에서 지원되는 자격 증명 공급자(OIDC 또는 SAML)의 역할을 만드는 절차는 동일합니다. 차이는 필수 선행 단계에서 생성하는 신뢰 정책의 내용에 있습니다. 사용하고 있는 공급자의 유형에 대한 **필수 선행 조건** 섹션에 나와 있는 절차에서부터 시작하세요.
+ OIDC 공급자의 경우 [OIDC 역할 생성을 위한 사전 조건](id_roles_create_for-idp_oidc.md#idp_oidc_Prerequisites) 섹션을 참조하세요.
+ SAML 공급자의 경우 [SAML 역할을 생성하기 위한 사전 조건](id_roles_create_for-idp_saml.md#idp_saml_Prerequisites) 섹션을 참조하세요.

**역할 생성(AWS API)**

1. 역할 만들기: [CreateRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html)

1. 역할에 권한 정책 연결: [AttachRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AttachRolePolicy.html)

    또는

   역할을 위한 인라인 권한 정책 생성: [PutRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutRolePolicy.html)

1. (선택 사항) 태그를 연결하여 사용자 지정 속성을 역할에 추가: [TagRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_TagRole.html)

   자세한 내용은 [IAM 역할의 태그 관리(AWS CLI 또는 AWS API)](id_tags_roles.md#id_tags_roles_procs-cli-api) 섹션을 참조하세요.

1. (선택 사항) 역할([PutRolePermissionsBoundary](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutRolePermissionsBoundary.html))에 대한 [권한 경계](access_policies_boundaries.md)를 설정합니다.

   이 권한 경계는 역할이 가질 수 있는 최대 권한을 관리합니다. 권한 경계는 고급 AWS 기능입니다.