를 AWS Tools for PowerShell 사용하여 인증 AWS - AWS Tools for PowerShell (버전 5)

버전 5(V5) AWS Tools for PowerShell 가 릴리스되었습니다.

변경 사항 해제 및 애플리케이션 마이그레이션에 대한 자세한 내용은 마이그레이션 주제를 참조하세요.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

를 AWS Tools for PowerShell 사용하여 인증 AWS

를 개발할 AWS 때 코드가를 인증하는 방법을 설정해야 합니다 AWS 서비스. 사용 가능한 환경 및 액세스에 따라 AWS 리소스에 대한 프로그래밍 방식 AWS 액세스를 구성할 수 있는 다양한 방법이 있습니다.

PowerShell용 도구에 대한 다양한 인증 방법을 확인하려면 AWS SDK 및 도구 참조 가이드에서 인증 및 액세스를 참조하세요.

이 주제에서는 새 사용자가 로컬에서 개발 중이고, 고용주로부터 인증 방법을 받지 않았으며, AWS IAM Identity Center 를 사용하여 임시 자격 증명을 얻을 것이라고 가정합니다. 사용자 환경이 이러한 가정에 해당하지 않는 경우 이 주제의 일부 정보가 사용자에게 적용되지 않거나 일부 정보가 이미 제공되었을 수 있습니다.

이 환경을 구성하려면 몇 가지 단계를 수행해야 하며, 요약하면 다음과 같습니다.

콘솔 자격 증명을 사용하여 로그인

기존 AWS Management Console 로그인 자격 증명을 사용하여에 프로그래밍 방식으로 액세스할 수 있습니다 AWS 서비스. 브라우저 기반 인증 흐름 후는 AWS SDKs AWS Tools for PowerShell 및와 같은 로컬 개발 도구에서 작동하는 임시 자격 증명을 AWS Tools for PowerShell 생성합니다 AWS CLI. 이 기능은 특히 장기 액세스 키를 관리하는 것보다 대화형 인증을 선호하는 경우 CLI 자격 증명을 구성하고 관리하는 프로세스를 간소화합니다.

이 프로세스를 사용하면 초기 계정 설정 중에 생성된 루트 자격 증명, IAM 사용자 또는 자격 증명 공급자의 페더레이션 자격 증명을 사용하여 인증할 수 있으며, Tools for PowerShell은 임시 자격 증명을 자동으로 관리합니다. 이 접근 방식은 장기 자격 증명을 로컬에 저장할 필요가 없으므로 보안을 강화합니다.

Invoke-AWSLogin cmdlet을 실행하면 활성 콘솔 세션에서 선택하거나 브라우저 기반 인증 흐름을 통해 로그인하면 임시 자격 증명이 자동으로 생성됩니다.는 최대 12시간 동안 이러한 자격 증명을 AWS Tools for PowerShell 자동으로 새로 고칩니다.

구성이 완료되면 및 기타 모든 AWS SDKs AWS Tools for PowerShell 및 도구에서 세션을 사용할 수 있습니다.

Invoke-AWSLogin Cmdlet을 AWS 사용하여에 로그인

Invoke-AWSLogin cmdlet을 실행하여 기존 AWS Management Console 자격 증명을 사용하여 인증합니다. 이전에 프로필을 구성하지 않은 경우 추가 정보를 묻는 메시지가 표시됩니다.

로그인하거나 프로필을 구성하려면 다음 단계를 따르세요.

  1. 설치 안내서에서 설치한 올바른 모듈을 가져왔는지 확인합니다.

    참고

    PowerShell - AWS.Tools AWSPowerShell.NetCore 및 에는 세 가지 모듈이 있습니다AWSPowerShell. 자세한 정보는 AWS Tools for PowerShell이란 무엇입니까?을 참조하세요.

    • PowerShell 터미널에서 cmdlet을 실행합니다. 그러면 default 프로파일이 사용됩니다.

      PS > Invoke-AWSLogin
    • 명명된 프로필에 로그인하거나 새 프로필을 생성하려면 -ProfileName 파라미터를 사용합니다.

      PS > Invoke-AWSLogin -ProfileName 'my-dev-profile'
    • 새 프로필이거나 이전 프로필/환경 변수에 지정 또는 구성된 프로필 AWS 리전 이 없는 경우 cmdlet에 리전을 제공하라는 메시지가 표시됩니다.

      Press Ctrl+C to cancel the following login prompts. Specify AWS Region No AWS region has been configured. The AWS region is the geographic location of your AWS resources. If you've used AWS before and already have resources in your account, tell us which region they were created in. If you haven't created resources in your account before, you can pick the region closest to you: https://docs.aws.amazon.com/global-infrastructure/latest/regions/aws-regions.html AWS Region:
  2. 는 AWS 계정의 로그인 프로세스를 위해 기본 브라우저를 열려고 AWS Tools for PowerShell 시도합니다.

    Using region 'us-west-2' Attempting to open the login page for 'us-west-2' in your default browser. If the browser does not open, use the following URL to complete your login: https://signin.us-west-2.amazonaws.com/authorize?<abbreviated> If you cannot connect to this URL, make sure that you have specified a valid region.
    • 를 사용하는 디바이스에 브라우저 AWS Tools for PowerShell 가 없는 경우 -Remote 파라미터를 사용하여 브라우저 지원 디바이스에서 열 수 있는 URL을 제공할 수 있습니다.

      PS > Invoke-AWSLogin -Remote
    • -Remote 파라미터를 사용한 경우 사용 중인 권한 부여 유형에 따라 로그인 프로세스를 수동으로 시작하는 지침이 표시됩니다. 표시되는 URL은 https://signin.us-east-1.amazonaws.com/authorize 시작하는 고유한 URL입니다. 브라우저 로그인을 완료한 후에는 결과 권한 부여 코드를 복사하여 터미널에 다시 붙여 넣어야 합니다.

      Press Ctrl+C to cancel the following login prompts. Using region 'us-west-2' determined by profile/environment defaults. To override, specify '-Region' parameter. Please complete the login workflow via the following URL: https://us-west-2.signin.aws.amazon.com/v1/authorize?<abbrievated> Please enter the authorization code displayed in the browser:
  3. 브라우저의 표시된 목록에서 사용할 자격 증명을 선택한 다음 터미널로 돌아갑니다.

    • 구성하려는 프로파일에 새 세션과 일치하지 않는 이전에 구성된 로그인 세션이 있는 경우에서 기존 프로파일에 해당하는 세션을 전환하고 있는지 확인하라는 AWS Tools for PowerShell 메시지가 표시됩니다.

      WARNING: Previously profile default was configured for arn:aws:iam::0123456789012:user/ReadOnly, and is now being updated to arn:aws:iam::0123456789012:user/Admin. Do you wish to change the identity that default is associated with? (y/n)
  4. 최종 메시지는 완료된 프로파일 구성을 설명합니다.

    Login completed successfully for profile 'my-dev-profile'.

    인증 토큰은 확인된 프로필을 기반으로 해시 파일 이름이 있는 .aws/login/cache 디렉터리 아래의 디스크에 캐시됩니다.

생성된 구성 파일

이 단계를 수행하면 다음과 같은 구성 파일에 기본 또는 지정된 프로파일이 생성됩니다.

[default] login_session = arn:aws:iam::0123456789012:user/username region = us-east-1 [my-dev-profile] login_session = arn:aws:iam::0123456789012:user/username region = us-east-1

프로필로 명령 실행

로그인한 후에는 자격 증명을 사용하여 연결된 프로필로 Tools for PowerShell cmdlets를 호출할 수 있습니다. 다음 예시에서는 기본 프로파일을 사용하여 Get-STSCallerIdentity cmdlet을 호출합니다.

PS > Get-STSCallerIdentity

특정 세션을 확인하려면 -ProfileName 파라미터를 사용합니다.

PS > Get-STSCallerIdentity -ProfileName 'my-dev-profile'

임시 자격 증명 토큰은 15분 후에 만료되지만 AWS Tools for PowerShell , 및 SDKs 요청 중에 필요한 경우 토큰을 자동으로 새로 고칩니다. 전체 세션은 최대 12시간 동안 유효하며, 이후에는 Invoke-AWSLogin cmdlet을 다시 실행해야 합니다.

Invoke-AWSLogout cmdlet을 사용하여 세션에서 로그아웃

세션을 마치면 자격 증명이 만료되도록 하거나 Invoke-AWSLogout cmdlet을 실행하여 캐시된 자격 증명을 삭제할 수 있습니다. CLI 또는 AWS_PROFILE 환경 변수에 프로파일이 지정되지 않은 경우 명령은 기본 프로파일에서 로그아웃합니다. 다음 예시에서는 기본 프로필에서 로그아웃합니다.

PS > Invoke-AWSLogout

특정 프로필 세션에서 로그아웃하려면 -ProfileName 파라미터를 사용합니다.

PS > Invoke-AWSLogout -ProfileName 'my-dev-profile'

로그인한 모든 프로필 세션에서 로그아웃하려면 -All 파라미터를 사용합니다.

PS > Invoke-AWSLogout -All

캐시된 자격 증명

임시 캐시 자격 증명과 이를 새로 고치는 데 필요한 메타데이터는 기본적으로 Windows 또는 Linux 및 MacOS%USERPROFILE%\.aws\login\cache~/.aws/login/cache에 저장됩니다.

AWS_LOGIN_CACHE_DIRECTORY 환경 변수를 설정하여이 위치를 재정의할 수 있습니다.

IAM Identity Center 사용 및 구성

사용하려면 먼저 활성화하고 구성해야 AWS IAM Identity Center합니다. PowerShell에서 이 작업을 수행하는 방법에 대한 자세한 내용은 AWS SDK 및 도구 참조 가이드의 IAM Identity Center 인증 항목에 있는 1단계를 참조하세요. 특히 IAM Identity Center를 통한 액세스가 설정되어 있지 않습니다 아래에 있는 필요한 지침을 따르세요.

PowerShell용 도구가 IAM Identity Center를 사용하도록 구성합니다.

참고

PowerShell용 도구 버전 4.1.538부터 SSO 자격 증명을 구성하고 AWS 액세스 포털 세션을 시작하는 데 권장되는 방법은이 주제에 설명된 대로 Initialize-AWSSSOConfigurationInvoke-AWSSSOLogin cmdlet을 사용하는 것입니다. 해당 버전의 Tools for PowerShell(또는 이후 버전)에 액세스할 수 없거나 이러한 cmdlet을 사용할 수 없는 경우에도를 사용하여 이러한 작업을 수행할 수 있습니다 AWS CLI. 방법을 알아보려면 섹션을 참조하세요포털 로그인 AWS CLI 에 사용.

다음 절차에서는 Tools for PowerShell이 임시 자격 증명을 얻는 데 사용하는 SSO 정보로 공유 AWS config 파일을 업데이트합니다. 이 절차의 결과로 AWS 액세스 포털 세션도 시작됩니다. 공유 config 파일에 이미 SSO 정보가 있고 Tools for PowerShell을 사용하여 액세스 포털 세션을 시작하는 방법을 알고 싶다면이 주제의 다음 섹션인 섹션을 참조하세요AWS 액세스 포털 세션 시작.

  1. 아직 설치하지 않은 경우 PowerShell을 열고 일반 cmdlet을 포함하여 운영 체제 및 환경에 AWS Tools for PowerShell 맞게를 설치합니다. 이를 위한 자세한 방법은 시작하기 AWS Tools for PowerShell 섹션을 참조하세요.

    예를 들어 Windows에 Tools for PowerShell의 모듈화된 버전을 설치하는 경우 다음과 유사한 명령을 실행할 가능성이 높습니다.

    Install-Module -Name AWS.Tools.Installer Install-AWSToolsModule AWS.Tools.Common
  2. 다음 명령을 실행합니다. 예제 속성 값을 IAM Identity Center 구성의 값으로 바꿉니다. 이러한 속성과 해당 속성을 찾는 방법에 대한 자세한 내용은 SDK 및 도구 참조 안내서의 IAM Identity Center 자격 증명 공급자 설정을 참조하세요. AWS SDKs

    $params = @{ ProfileName = 'my-sso-profile' AccountId = '111122223333' RoleName = 'SamplePermissionSet' SessionName = 'my-sso-session' StartUrl = 'https://provided-domain.awsapps.com/start' SSORegion = 'us-west-2' RegistrationScopes = 'sso:account:access' }; Initialize-AWSSSOConfiguration @params

    또는 cmdlet을 단독으로 사용할 수 있으며Initialize-AWSSSOConfiguration, Tools for PowerShell에서 속성 값을 입력하라는 메시지를 표시합니다.

    특정 속성 값에 대한 고려 사항:

    • 지침에 따라 IAM Identity Center를 활성화하고 구성하는 경우의 값은 일 -RoleName 수 있습니다PowerUserAccess. 그러나 PowerShell 작업 전용으로 IAM Identity Center 권한 세트를 생성한 경우 대신 사용합니다.

    • IAM Identity Center를 구성한 AWS 리전 를 사용해야 합니다.

  3. 이때 공유 AWS config 파일에는 Tools for PowerShell에서 참조할 수 있는 구성 값 세트my-sso-profile가 포함된 라는 프로필이 포함되어 있습니다. 이 파일의 위치를 찾으려면 AWS SDK 및 도구 참조 가이드에서 공유 파일의 위치를 참조하세요.

    PowerShell용 도구는 AWS에 요청을 보내기 전에 프로필의 SSO 토큰 공급자를 사용하여 자격 증명을 얻습니다. IAM Identity Center 권한 세트에 연결된 IAM 역할인 sso_role_name 값은 애플리케이션에 AWS 서비스 사용되는에 대한 액세스를 허용해야 합니다.

    다음 샘플은 위에 표시된 명령을 사용하여 생성된 프로파일을 보여줍니다. 일부 속성 값과 그 순서는 실제 프로필에서 다를 수 있습니다. 프로파일의 sso-session 속성은 AWS 액세스 포털 세션을 시작하는 설정이 my-sso-session포함된 이라는 섹션을 참조합니다.

    [profile my-sso-profile] sso_account_id=111122223333 sso_role_name=SamplePermissionSet sso_session=my-sso-session [sso-session my-sso-session] sso_region=us-west-2 sso_registration_scopes=sso:account:access sso_start_url=https://provided-domain.awsapps.com/start/
  4. 이미 활성 AWS 액세스 포털 세션이 있는 경우 Tools for PowerShell에서 이미 로그인했음을 알립니다.

    그렇지 않은 경우 Tools for PowerShell은 기본 웹 브라우저에서 SSO 권한 부여 페이지를 자동으로 열려고 시도합니다. 브라우저의 프롬프트를 따르세요. 여기에는 SSO 권한 부여 코드, 사용자 이름 및 암호, AWS IAM Identity Center 계정 및 권한 세트에 액세스할 수 있는 권한이 포함될 수 있습니다.

    Tools for PowerShell은 SSO 로그인에 성공했음을 알려줍니다.

AWS 액세스 포털 세션 시작

에 액세스하는 명령을 실행하기 전에 Tools for PowerShell이 IAM Identity Center 인증을 사용하여 자격 증명을 확인할 수 있도록 활성 AWS 액세스 포털 세션이 AWS 서비스필요합니다. AWS 액세스 포털에 로그인하려면 PowerShell에서 다음 명령을 실행합니다. 여기서 -ProfileName my-sso-profile는이 주제의 이전 섹션에 있는 절차를 따랐을 때 공유 config 파일에 생성된 프로필의 이름입니다.

Invoke-AWSSSOLogin -ProfileName my-sso-profile

이미 활성 AWS 액세스 포털 세션이 있는 경우 Tools for PowerShell에서 이미 로그인했음을 알립니다.

그렇지 않은 경우 Tools for PowerShell은 기본 웹 브라우저에서 SSO 권한 부여 페이지를 자동으로 열려고 시도합니다. 브라우저의 프롬프트를 따르세요. 여기에는 SSO 권한 부여 코드, 사용자 이름 및 암호, AWS IAM Identity Center 계정 및 권한 세트에 액세스할 수 있는 권한이 포함될 수 있습니다.

Tools for PowerShell은 SSO 로그인에 성공했음을 알려줍니다.

이미 활성 세션이 있는지 테스트하려면 필요에 따라 AWS.Tools.SecurityToken 모듈을 설치하거나 가져온 후 다음 명령을 실행합니다.

Get-STSCallerIdentity -ProfileName my-sso-profile

Get-STSCallerIdentity cmdlet에 대한 응답은 공유 config 파일에 구성된 IAM Identity Center 계정 및 권한 세트를 보고합니다.

예제

다음은 PowerShell용 도구와 함께 IAM Identity Center를 사용하는 방법의 예제입니다. 이 예제에서는 다음을 가정합니다.

  • 이 주제의 앞부분에서 설명한 대로 IAM Identity Center를 사용하도록 설정하고 구성했습니다. SSO 속성은이 주제의 앞부분에서 구성한 my-sso-profile 프로파일에 있습니다.

  • Initialize-AWSSSOConfiguration 또는 Invoke-AWSSSOLogin cmdlet을 통해 로그인하면 사용자에게 Amazon S3에 대한 읽기 전용 권한이 있습니다.

  • 해당 사용자는 일부 S3 버킷을 볼 수 있습니다.

필요에 따라 AWS.Tools.S3 모듈을 설치하거나 가져온 다음 다음 PowerShell 명령을 사용하여 S3 버킷 목록을 표시합니다.

Get-S3Bucket -ProfileName my-sso-profile

추가 정보

  • 프로필 및 환경 변수 사용과 같은 PowerShell용 도구 인증에 대한 자세한 옵션은 AWS SDK 및 도구 참조 가이드의 구성 장을 참조하세요.

  • 일부 명령은 AWS 리전을 지정해야 합니다. -Region cmdlet 옵션, [default] 프로필, AWS_REGION 환경 변수 등 여러 가지 방법으로 이를 수행할 수 있습니다. 자세한 내용은이 가이드에 대한 AWS 리전 지정 AWS Tools for PowerShell의 및 SDK 및 도구 참조 가이드의 AWS 리전을 참조하세요. AWS SDKs

  • 모범 사례에 대해 자세히 알아보려면 IAM 사용 설명서에서 IAM의 보안 모범 사례를 참조하세요.

  • 단기 AWS 자격 증명을 생성하려면 IAM 사용 설명서임시 보안 자격 증명을 참조하세요.

  • 다른 보안 인증 공급자에 대해 알아보려면 AWS SDK 및 도구 참조 가이드에서 표준화된 보안 인증 공급자를 참조하세요.