IAM 아이덴티티 센터 보안 인증 공급자 - AWS SDK 및 도구

IAM 아이덴티티 센터 보안 인증 공급자

참고

설정 페이지의 레이아웃을 이해하거나, 이어지는 AWS SDK 및 도구 지원 표를 해석하는 데 도움이 되는 정보는 이 안내서의 설정 페이지의 이해에서 확인하세요.

이 인증 메커니즘은 코드에 대해 AWS 서비스의 SSO(Single Sign-On)액세스를 얻는 데 AWS IAM Identity Center을 사용합니다.

참고

AWS SDK API 설명서에서는 IAM ID 센터 보안 인증 공급자를 SSO 보안 인증 공급자라고 합니다.

IAM Identity Center를 활성화한 후에는 공유 AWS config 파일의 설정에 대한 프로파일을 정의합니다. 이 프로파일은 IAM ID 센터 액세스 포털에 연결하는 데 사용됩니다. 사용자가 IAM Identity Center에서 성공적으로 인증하면 포털은 해당 사용자와 관련된 IAM 역할에 대한 단기 보안 인증을 반환합니다. SDK가 구성에서 임시 보안 인증을 가져와 AWS 서비스 요청에 사용하는 방법을 알아보려면 AWS SDK 및 도구에 대한 IAM Identity Center 인증 확인 방법 섹션을 참조하십시오.

config 파일을 통해 IAM ID 센터를 구성하는 두 가지 방법이 있습니다.

  • (권장) SSO 토큰 공급자 구성 - 연장된 세션 지속 시간. 사용자 지정 세션 지속 시간을 지원합니다.

  • 새로 고칠 수 없는 레거시 구성 - 고정된 8시간 세션 사용.

두 구성 모두 세션이 만료되면 다시 로그인해야 합니다.

다음 두 안내서에는 IAM Identity Center에 대한 추가 정보가 포함되어 있습니다.

SDK 및 도구가 이 구성을 사용하여 보안 인증을 사용하고 새로 고치는 방법에 대한 자세한 내용은 AWS SDK 및 도구에 대한 IAM Identity Center 인증 확인 방법 섹션을 참조하십시오.

사전 조건

먼저 IAM Identity Center를 활성화해야 합니다. IAM Identity Center 활성화에 대한 자세한 내용은 AWS IAM Identity Center 사용 설명서AWS IAM Identity Center 활성화를 참조하세요.

참고

또한, 이 페이지에 자세히 설명된 전체 사전 조건 필요한 공유 config 파일 구성을 확인하려면, IAM Identity Center를 사용하여 AWS SDK 및 도구 인증 설정을 위한 안내형 지침을 참고하세요.

SSO 토큰 공급자 구성

SSO 토큰 공급자 구성을 사용하면 AWS SDK 또는 도구가 연장된 세션 기간까지 세션을 자동으로 새로 고칩니다. 세션 지속 시간과 최대 지속 기간에 대한 자세한 내용은 AWS IAM Identity Center 사용 설명서의 AWS 액세스 포털 및 IAM Identity Center 통합 애플리케이션의 세션 지속 시간 구성을 참고하세요.

config 파일의 sso-session 섹션은 SSO 액세스 토큰을 획득하기 위한 구성 변수를 그룹화하는 데 사용되며, 이를 사용하여 AWS 보안 인증 정보를 얻을 수 있습니다. config 파일 내에서 이 섹션에 대한 더 자세한 내용은 구성 파일 형식를 참고하세요.

다음의 공유 config 파일 예시는, dev 프로파일을 사용하여 IAM Identity Center 자격 증명을 요청하도록 SDK 또는 도구를 구성합니다.

[profile dev] sso_session = my-sso sso_account_id = 111122223333 sso_role_name = SampleRole [sso-session my-sso] sso_region = us-east-1 sso_start_url = https://my-sso-portal.awsapps.com/start sso_registration_scopes = sso:account:access

앞의 예제에서는 sso-session 섹션을 정의하고 이를 프로파일에 연결한다는 것을 보여줍니다. 일반적으로 SDK가 AWS 자격 증명을 요청할 수 있도록 profile 섹션에 sso_account_idsso_role_name을 설정해야 합니다. sso_region, sso_start_url, sso_registration_scopessso-session 섹션 내에서 설정해야 합니다.

sso_account_idsso_role_name은 SSO 토큰 구성의 모든 시나리오에 필수적이지는 않습니다. 애플리케이션이 보유자 인증 정보를 지원하는 AWS 서비스 서비스만 사용하는 경우 기존 AWS 보안 인증은 필요하지 않습니다. 보유자 인증은 보유자 토큰이라는 보안 토큰을 사용하는 HTTP 인증 체계입니다. 이 시나리오에서는 sso_account_idsso_role_name은 필수가 아닙니다. 해당 서비스가 베어러 토큰 인가를 지원하는지 확인하려면, 개별 AWS 서비스 안내서를 참조하세요.

등록 범위는 sso-session의 일부로 구성됩니다. 범위는 애플리케이션의 사용자 계정 액세스를 제한하는 OAuth 2.0의 메커니즘입니다. 앞의 예제에서는 계정과 역할을 나열하는 데 필요한 액세스를 제공하기 위해 sso_registration_scopes를 설정합니다.

다음 예제는 동일한 sso-session 구성을 여러 프로파일에서 재사용하는 방법을 보여줍니다.

[profile dev] sso_session = my-sso sso_account_id = 111122223333 sso_role_name = SampleRole [profile prod] sso_session = my-sso sso_account_id = 111122223333 sso_role_name = SampleRole2 [sso-session my-sso] sso_region = us-east-1 sso_start_url = https://my-sso-portal.awsapps.com/start sso_registration_scopes = sso:account:access

인증 토큰은 세션 이름을 기반으로 하는 파일 이름을 사용하여 ~/.aws/sso/cache 디렉터리 아래의 디스크에 캐시됩니다.

새로 고칠 수 없는 레거시 구성

새로 고칠 수 없는 기존 구성을 사용하는 자동 토큰 새로 고침은 지원되지 않습니다. 대신 SSO 토큰 공급자 구성을(를)사용하는 것이 좋습니다.

새로 고칠 수 없는 기존 구성을 사용하려면 프로파일에서 다음 설정을 지정해야 합니다.

  • sso_start_url

  • sso_region

  • sso_account_id

  • sso_role_name

sso_start_urlsso_region 설정을 사용하여 프로파일의 사용자 포털을 지정합니다. sso_account_idsso_role_name 설정으로 권한을 지정합니다.

다음 예제에서는 config 파일에 필요한 네 가지 값을 설정합니다.

[profile my-sso-profile] sso_start_url = https://my-sso-portal.awsapps.com/start sso_region = us-west-2 sso_account_id = 111122223333 sso_role_name = SSOReadOnlyRole

인증 토큰은 sso_start_url에 기반한 파일 이름을 가진 ~/.aws/sso/cache 디렉터리 아래의 디스크에 캐시됩니다.

IAM Identity Center 보안 인증 공급자 설정

다음을 사용하여 이 기능을 구성하십시오.

sso_start_url- 공유 AWS config 파일 설정

조직의 IAM Identity Center 발급자 URL 또는 액세스 포털 URL을 가리키는 URL입니다. 자세한 내용은 AWS IAM Identity Center 사용 설명서AWS 액세스 포털 사용을 참조하세요.

이 값을 찾으려면 IAM Identity Center 콘솔을 열고 대시보드를 확인한 다음 AWS 액세스 포털 URL을 찾으세요.

  • 또는, AWS CLI 버전 2.22.0부터는 AWS 발급자 URL에 대해 값을 대신 사용할 수 있습니다.

sso_region- 공유 AWS config 파일 설정

IAM ID 센터 포털 호스트, 즉 IAM ID 센터를 활성화하기 전에 선택한 리전을 포함하는 AWS 리전입니다. 이는 기본 AWS 리전과 독립적이며 다를 수 있습니다.

AWS 리전 및 해당 코드의 전체 목록은 Amazon Web Services 일반 참조리전별 엔드포인트를 참조하십시오. 이 값을 찾으려면 IAM Identity Center 콘솔을 열고 대시보드를 확인한 다음 리전을 찾으십시오.

sso_account_id- 공유 AWS config 파일 설정

인증에 사용하기 위해 AWS Organizations 서비스를 통해 추가된 AWS 계정의 숫자 ID입니다.

사용 가능한 계정 목록을 보려면 IAM Identity Center 콘솔로 이동하여 AWS 계정 페이지를 여십시오. AWS IAM Identity Center 포털 API 참조ListAccounts API 메서드를 사용하여 사용 가능한 계정 목록을 볼 수도 있습니다. 예를 들어 AWS CLI 메서드 list-accounts를 호출할 수 있습니다.

sso_role_name- 공유 AWS config 파일 설정

사용자의 최종 권한을 정의하는 IAM 역할로 프로비저닝된 권한 집합의 이름입니다. 역할은 sso_account_id에 의해 지정된 AWS 계정에 존재해야 합니다. Amazon 리소스 이름(ARN)역할을 사용하지 말고 역할 이름을 사용하십시오.

권한 세트에는 IAM 정책 및 사용자 지정 권한 정책이 첨부되어 있으며 할당된 AWS 계정에 대한 사용자의 액세스 수준을 정의합니다.

AWS 계정당 사용 가능한 권한 집합 목록을 보려면 IAM Identity Center 콘솔로 이동하여 AWS 계정 페이지를 여십시오. AWS 계정 표에 나열된 올바른 권한 집합 이름을 선택합니다. AWS IAM Identity Center 포털 API 참조ListAccountsRoles API 메서드를 사용하여 사용 가능한 권한 집합 목록을 볼 수도 있습니다. 예를 들어 AWS CLI 메서드 list-account-roles를 호출할 수 있습니다.

sso_registration_scopes- 공유 AWS config 파일 설정

sso-session에 대해 인증될 쉼표로 구분된 유효한 범위 문자열 목록입니다. 애플리케이션은 하나 이상의 범위를 요청할 수 있으며 애플리케이션에 발급되는 액세스 토큰은 부여된 범위로 제한됩니다. IAM Identity Center 서비스에서 새로 고침 토큰을 다시 받으려면 sso:account:access의 최소 범위를 부여해야 합니다. 사용 가능한 액세스 범위 옵션 목록은 AWS IAM Identity Center 사용 설명서액세스 범위를 참조하세요.

이러한 범위는 등록된 OIDC 클라이언트에 대해 인증받기 위해 요청된 권한과 클라이언트가 검색한 액세스 토큰을 정의합니다. 범위는 IAM Identity Center 보유자 토큰 인증 엔드포인트에 대한 액세스를 승인합니다.

이 설정은 새로 고칠 수 없는 레거시 구성에는 적용되지 않습니다. 레거시 구성을 사용하여 발급된 토큰은 암시적으로 범위 sso:account:access(으)로 제한됩니다.

AWS SDK 및 도구 지원

다음 SDK는 이 주제에서 설명하는 기능 및 설정을 지원합니다. 모든 일부 예외가 기록됩니다. 모든 JVM 시스템 속성 설정은 AWS SDK for Java 및 AWS SDK for Kotlin에서만 지원됩니다.

SDK 지원 참고 또는 추가 정보
AWS CLI v2
SDK for C++
SDK for Go V2 (1.x)
SDK for Go 1.x (V1) 공유 config 파일 설정을 사용하려면 구성 파일에서 로드를 켜야 합니다. 세션을 참조하십시오.
SDK for Java 2.x 구성 값은 credentials 파일에서도 지원됩니다.
SDK for Java 1.x 아니요
SDK for JavaScript 3.x
SDK for JavaScript 2.x
SDK for Kotlin
SDK for .NET 4.x
SDK for .NET 3.x
SDK for PHP 3.x
SDK for Python (Boto3)
SDK for Ruby 3.x
SDK for Rust 부분 새로 고칠 수 없는 레거시 구성에만 해당.
SDK for Swift
Tools for PowerShell V5
Tools for PowerShell V4