Share Your AWS re:Post Experience - Quick 3 Question Survey
Help us improve AWS re:Post! We're interested in understanding how you use re:Post and its impact on your AWS journey. Please take a moment to complete our brief 3-question survey.
AD FS를 사용하여 Active Directory 사용자에게 API 또는 AWS CLI에 대한 액세스 권한을 부여하려면 어떻게 해야 합니까?
페더레이션을 사용하여 Active Directory 사용자를 위한 AWS Management Console에 대한 액세스를 구성했습니다. Active Directory Federation Services(AD FS)를 사용하여 사용자에게 AWS Command Line Interface(AWS CLI)에 대해 동일한 액세스 권한을 부여하려고 합니다.
간략한 설명
SAML 2.0 페더레이션 사용자에게 AWS Management Console에 액세스할 수 있도록 허용하더라도 프로그래밍 방식의 액세스가 필요한 사용자는 여전히 액세스 키와 비밀 키가 있어야 합니다.
AWS Identity and Access Management (IAM) 사용자의 액세스 키 ID와 비밀 액세스 키를 얻으려면 다음 중 하나를 수행하십시오.
- AWS CLI를 구성합니다.
- 페더레이션 사용자가 AWS CLI에 액세스할 수 있는 임시 자격 증명을 받으십시오.
페더레이션 사용자에게 액세스 권한을 부여하기 전에 다음을 수행하십시오.
- Windows Active Directory, AD FS 및 SAML 2.0을 사용하여 AWS로의 페더레이션을 활성화합니다.
- AWS Tools for PowerShell 도구 버전 3.1.31.0 이상을 사용하십시오. AWS SDK for Python의 v2.36 이상(안정 버전)을 워크스테이션에 설치할 수도 있습니다.
- 최소 자격 증명 파일인 .aws/credentials를 사용하십시오.
참고: 디렉터리 사용자에 대해 다중 인증(MFA)을 활성화한 경우에는 이 해결 방법이 호환되지 않습니다.
해결 방법
ID 제공업체(IdP)가 Integrated Windows Authentication(IWA), NTLM 또는 Kerberos(AD FS 2.0의 기본값)로 작동하도록 구성된 경우 해결 방법 1을 참조하십시오. IdP가 양식 기반 인증(AD FS 3.0 및 4.0의 기본값)으로 작동하도록 구성된 경우 해결 방법 2를 참조하십시오.
참고: AWS CLI 명령을 실행할 때 오류가 발생하면 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.
IWA를 사용하는 PowerShell for AD FS(PowerShell 2.0)
1. 다음 명령을 실행하여 Windows PowerShell 모듈을 가져옵니다.
> Import-Module "C:\Program Files (x86)\AWS Tools\PowerShell\AWSPowerShell\AWSPowerShell.psd1"
2. 다음과 비슷한 명령을 실행하여 AD FS 엔드포인트의 변수를 설정합니다.
> $Endpoint = 'https://adfs.example.com/adfs/ls/IdpInitiatedSignOn.aspx?loginToRp=urn:amazon:webservices'
참고: 여기에는 AD FS 로그인 페이지의 전체 URL과 AWS의 로그인 Uniform Resource Name(URN)이 포함됩니다.
3. 다음과 비슷한 명령을 실행하여 SAML 엔드포인트를 설정합니다.
> $EndpointName = Set-AWSSamlEndpoint -Endpoint "$Endpoint" -StoreAs 'ADFS-Login' -AuthenticationType NTLM
참고: 기본적으로 AD FS 2.0 uthenticationType은 NTLM으로 설정됩니다. 앞의 AWS 도구 Cmdlet 예시에서 AuthenticationType의 값을 지정하지 않은 경우 AWS 도구는 기본적으로 Kerberos를 사용합니다.
4. 저장된 엔드포인트 설정을 사용하여 AD FS IdP로 인증하고 다음 방법 중 하나로 사용자가 맡을 수 있는 역할 목록을 얻습니다.
현재 워크스테이션에 로그인한 사용자의 자격 증명을 사용하십시오.
> Set-AWSSamlRoleProfile -StoreAs 'SAMLUser' -EndpointName $EndpointName
-또는-
Active Directory 사용자의 자격 증명을 지정합니다.
> $Credential = Get-Credential -Message "Enter the domain credentials for the endpoint" > Set-AWSSamlRoleProfile -EndpointName $EndpointName -NetworkCredential $credential -StoreAs 'SAMLUser'
5. 여러 역할을 사용할 수 있는 경우 맡을 역할을 선택하라는 메시지가 표시됩니다. 터미널 세션에 다음과 비슷한 알파벳 문자를 입력합니다.
SAMLUser[A] A - 123456789012:role/ADFS-DevAdmin [B] B - 123456789012:role/ADFS-DevReadOnly [?] Help (default is "A"): A
6. 다음과 비슷한 명령을 실행하여 사용자가 페더레이션 자격 증명과 지정된 프로파일을 사용하여 AWS CLI에 액세스할 수 있는지 확인합니다.
Get-IAMSAMLProviderList -ProfileName SAMLUser
양식 기반 인증을 사용하는 Python for AD FS(AD FS 3.0 및 4.0의 기본값)
1. Python에 다음 모듈을 설치합니다.
pip install --upgrade boto beautifulsoup4 requests
2. SAML 2.0을 사용하여 페더레이션 API/CLI 액세스를 위한 일반 솔루션을 구현한 다음, 링크된 이 블로그 게시물의 4단계에 있는 스크립트를 다운로드합니다.
3. 스크립트를 열고 원하는 리전과 출력 형식을 설정합니다. adfs.example.com을 해당 URL로 바꾼 다음 AD FS 서버의 정규화된 도메인 이름(FQDN)을 입력합니다.
region = 'eu-west-1' outputformat = 'json' awsconfigfile = '/.aws/credentials' idpentryurl = 'https://adfs.example.com/adfs/ls/IdpInitiatedSignOn.aspx?loginToRp=urn:amazon:webservices'
참고: AWS 자격 증명 파일의 경로가 다른 경우 해당 파일 경로를 지정하십시오.
4. 변경 내용을 저장하고 파일을 실행한 다음 표시되는 다음 필드를 채웁니다.
bob@Ubuntu64:~$ ./working_samlapi.py Username: bob@example.com Password: *********** Please choose the role you would like to assume: [ 0 ]: arn:aws:iam::123456789012:role/ADFS-DevAdmin [ 1 ]: arn:aws:iam::123456789012:role/ADFS-DevReadOnly Selection: 0 ---------------------------------------------------------------- Your new access key pair has been stored in the AWS configuration file /home/ec2-user/.aws/credentials under the saml profile. Note that it will expire at 2018-03-14T14:57:45Z. After this time, you may safely rerun this script to refresh your access key pair. To use this credential, call the AWS CLI with the --profile option (e.g. aws --profile saml ec2 describe-instances). ----------------------------------------------------------------
5. 성공적으로 페더레이션한 후에는 명령의 --profile 파라미터를 사용하여 새로 구성된 SAML 프로파일을 사용하여 명령을 실행합니다.
bob@Ubuntu64:~$ aws iam list-saml-providers --profile saml { "SAMLProviderList": [ { "CreateDate": "2018-03-14T13:28:24Z", "ValidUntil": "2118-03-14T13:28:23Z", "Arn": "arn:aws:iam::123456789012:saml-provider/adfs" } ] }
관련 정보

관련 콘텐츠
- 질문됨 2년 전lg...
- 질문됨 일 년 전lg...
- 질문됨 10달 전lg...
- 질문됨 4달 전lg...
- 질문됨 일 년 전lg...
- AWS 공식업데이트됨 일 년 전