임시 보안 자격 증명을 생성할 수 있는 권한 부여
기본적으로 IAM 사용자는 페더레이션 사용자 및 역할을 위한 임시 보안 자격 증명을 생성할 수 있는 권한이 없습니다. 사용자에게 이러한 권한을 제공하려면 정책을 사용해야 합니다. 사용자에게 직접 권한을 부여할 수 있지만, 그룹에게 권한을 부여할 것을 강력히 권고합니다. 그렇게 하면 권한 관리가 훨씬 쉬워집니다. 어떤 사용자가 권한에 연결된 작업을 수행할 필요가 더 이상 없는 경우에는 그룹에서 그 사용자를 삭제하기만 하면 됩니다. 다른 어떤 사용자가 그 작업을 수행해야 한다면 해당 그룹에 추가해 권한을 부여하면 됩니다.
페더레이션 사용자 또는 역할을 위해 임시 보안 자격 증명을 생성할 수 있는 권한을 IAM 그룹에 부여하려면 다음 권한 중 하나 또는 둘 다를 부여하는 정책을 연결하면 됩니다.
-
페더레이션 사용자들이 IAM 역할에 액세스하도록 하려면 AWS STS
AssumeRole
에 대한 액세스 권한을 부여하세요. -
역할이 필요 없는 페더레이션 사용자에 대해서는 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": "*" }] }
중요
IAM 사용자에게 GetFederationToken
을 사용해 페더레이션 사용자를 위한 임시 보안 자격 증명을 생성할 수 있는 권한을 부여하면 이로써 해당 사용자가 자신의 권한을 위임할 수 있게 허용하는 것이므로 주의하시기 바랍니다. 여러 IAM 사용자 및 AWS 계정에 걸쳐 권한을 위임하는 것에 대한 자세한 내용은 액세스 권한 위임을 위한 정책의 예 섹션을 참조하세요. 임시 보안 자격 증명에서 권한을 제어하는 것에 대한 자세한 정보는 임시 보안 자격 증명에 대한 권한 섹션을 참조하세요.
예 페더레이션 사용자에 대해 임시 보안 자격 증명을 생성할 수 있는 사용자 제한 권한을 부여하는 정책 예
IAM 사용자가 GetFederationToken
을 호출하도록 허용할 때는 IAM 사용자가 위임할 수 있는 권한을 제한하는 것이 좋습니다. 예를 들어 다음 정책은 IAM 사용자가 이름이 Manager로 시작하는 페더레이션 사용자에 대해서만 임시 보안 자격 증명을 생성하도록 허용하는 방법을 보여줍니다.
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "sts:GetFederationToken", "Resource": ["arn:aws:sts::123456789012:federated-user/Manager*"] }] }