View a markdown version of this page

IAM 정책을 사용하여 액세스 제어 - AWS Identity and Access Management

IAM 정책을 사용하여 액세스 제어

IAM은 아웃바운드 ID 페더레이션 기능에 대한 액세스를 제어하는 여러 정책 유형을 제공합니다. ID 기반 정책을 사용하여 토큰을 요청할 수 있는 IAM 위탁자를 제어하고 대상, 수명 및 서명 알고리즘과 같은 특정 토큰 속성을 적용할 수 있습니다. 서비스 제어 정책(SCP)을 사용하면 AWS Organizations의 모든 계정에서 토큰 생성에 대해 조직 전체의 제한을 적용할 수 있습니다. 리소스 제어 정책(RCP) 리소스 수준에서 액세스를 제어합니다. 또한 VPC 엔드포인트 정책을 사용하여 VPC 엔드포인트를 통해 AWS STS GetWebIdentityToken API에 액세스할 수 있는 위탁자를 제한하여 보안 태세에 네트워크 수준 제어를 추가할 수 있습니다. 이 섹션에서는 이러한 정책 유형 및 조건 키를 사용하여 세분화된 액세스 제어를 구현하는 방법을 설명합니다.

ID 토큰을 요청하려면 IAM 위탁자에게 sts:GetWebIdentityToken 권한이 있어야 합니다. IAM 사용자 또는 역할에 연결된 ID 정책을 통해 이 권한을 부여합니다. 태그(키, 값 페어)가 GetWebIdentityToken 직접 호출에 전달되도록 허용하려면 IAM 위탁자에게 sts:TagGetWebIdentityToken 권한이 있어야 합니다.

  • sts:IdentityTokenAudience 조건 키를 사용하여 토큰을 받을 수 있는 외부 서비스를 제한합니다.

  • sts:DurationSeconds 조건 키를 사용하여 최대 토큰 수명을 적용합니다.

  • sts:SigningAlgorithm 조건 키를 사용하여 특정 암호화 알고리즘을 요구합니다.

  • aws:RequestTag 조건 키를 사용하여 요청에서 전달된 태그 키 값 페어를 정책에서 지정한 태그 페어와 비교합니다.

  • aws:TagKeys 조건 키를 사용하여 요청의 태그 키를 정책에서 지정한 키와 비교합니다.

IAM 정책에서 사용할 수 있는 조건 키에 대한 자세한 내용은 IAM 및 AWS STS 조건 키를 참조하세요.

이 샘플 ID 정책은 여러 조건 키를 결합합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowTokenGenerationWithRestrictions", "Effect": "Allow", "Action": "sts:GetWebIdentityToken", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "sts:IdentityTokenAudience": [ "https://api1.example.com", "https://api2.example.com" ] }, "NumericLessThanEquals": { "sts:DurationSeconds": 300 }, "StringEquals": { "sts:SigningAlgorithm": "ES384" } } } ] }

모범 사례

다음 권장 사항에 따라 AWS ID를 외부 서비스에 안전하게 페더레이션합니다.

  • 짧은 토큰 수명 사용: 운영 요구 사항을 충족하는 수명이 가장 짧은 토큰을 요청합니다.

  • IAM 정책을 사용하여 최소 권한 액세스 구현 및 토큰 속성 제한: 권한이 필요한 IAM 위탁자에게만 sts:GetWebIdentityToken 권한을 부여합니다. 조건 키를 사용하여 필요에 따라 서명 알고리즘, 허용된 토큰 대상 및 최대 토큰 수명을 지정합니다.

  • 외부 서비스의 클레임 검증: 보안을 위해 항상 제목('sub'), 대상('aud') 등의 관련 클레임을 검증하여 예상 값과 일치하는지 확인합니다. 가능한 경우 사용자 지정 클레임을 검증하여 외부 서비스에서 세분화된 권한 부여 결정을 가능하게 합니다.