임시 보안 자격 증명을 만들 권한 부여

임시 보안 자격 증명을 만들 권한 부여 (Granting permissions to create temporary security credentials)

기본적으로 IAM 사용자는 AWS STS 페더레이션 사용자 세션과 역할을 위한 임시 보안 자격 증명을 만들 권한이 없어요. 정책으로 사용자에게 이 권한을 제공해야 해요. 사용자에게 직접 권한을 부여할 수도 있지만, 그룹에 권한을 부여하길 강력히 권장해요. 권한 관리가 훨씬 쉬워지거든요. 누군가 더 이상 그 권한과 관련된 작업을 수행할 필요가 없어지면 그룹에서 제거하기만 하면 되고, 다른 사람이 그 작업을 수행해야 하면 그룹에 추가하면 권한이 부여돼요.

출처: 문서

본문

IAM 그룹에 AWS STS 페더레이션 사용자 세션 또는 역할을 위한 임시 보안 자격 증명을 만들 권한을 부여하려면, 다음 특권 중 하나 또는 둘 다를 부여하는 정책을 연결해요.

  • OIDC와 SAML 페더레이션 프린시펄이 IAM 역할에 접근하려면 AWS STS AssumeRole 접근을 부여해요.
  • 역할이 필요하지 않은 AWS STS 페더레이션 사용자를 위해서는 AWS STS GetFederationToken 접근을 부여해요.

AssumeRole과 GetFederationToken API 작업의 차이에 대한 자세한 내용은 임시 보안 자격 증명 요청을 참고하세요.

IAM 사용자는 GetSessionToken을 호출해 임시 보안 자격 증명을 만들 수도 있어요. 사용자가 GetSessionToken을 호출하는 데 권한은 필요하지 않아요. 이 작업의 목적은 사용자를 MFA로 인증하는 것이에요. 정책으로 인증을 제어할 수는 없어요. 즉 IAM 사용자가 GetSessionToken을 호출해 임시 자격 증명을 만드는 것을 막을 수 없어요.

역할 수임 권한을 부여하는 정책 예시

다음 예시 정책은 AWS 계정 123123123123의 UpdateApp 역할에 대해 AssumeRole을 호출할 권한을 부여해요. AssumeRole을 사용할 때, 페더레이션 사용자를 대신해 보안 자격 증명을 만드는 사용자(또는 애플리케이션)는 역할 권한 정책에 이미 지정된 권한이 아닌 권한을 위임할 수 없어요.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "sts:AssumeRole",
      "Resource": "arn:aws:iam::123123123123:role/UpdateAPP"
    }
  ]
}
페더레이션 사용자를 위한 임시 보안 자격 증명을 만들 권한을 부여하는 정책 예시

다음 예시 정책은 GetFederationToken에 접근할 권한을 부여해요.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "sts:GetFederationToken",
      "Resource": "*"
    }
  ]
}
중요

GetFederationToken으로 AWS STS 페더레이션 사용자를 위한 임시 보안 자격 증명을 만들 권한을 IAM 사용자에게 주면, 그 사용자가 자기 자신의 권한을 위임할 수 있게 됩니다. IAM 사용자와 AWS 계정 간 권한 위임에 대한 자세한 내용은 접근 위임 정책의 예시를 참고하세요. 임시 보안 자격 증명의 권한 제어에 대한 자세한 내용은 임시 보안 자격 증명의 권한을 참고하세요.

페더레이션 사용자를 위한 임시 보안 자격 증명을 만들 제한된 권한을 사용자에게 부여하는 정책 예시

IAM 사용자가 GetFederationToken을 호출하게 할 때는, IAM 사용자가 위임할 수 있는 권한을 제한하는 것이 모범 사례예요. 예를 들어 다음 정책은 IAM 사용자가 이름이 Manager로 시작하는 AWS STS 페더레이션 사용자를 위해서만 임시 보안 자격 증명을 만들 수 있게 해요.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "sts:GetFederationToken",
      "Resource": ["arn:aws:sts::123456789012:federated-user/Manager*"]
    }
  ]
}

더 알아보기 (Learn more)