임시 보안 자격 증명을 생성할 수 있는 권한 부여 - AWS Identity and Access Management

임시 보안 자격 증명을 생성할 수 있는 권한 부여

기본적으로 IAM 사용자는 페더레이션 사용자 및 역할을 위한 임시 보안 자격 증명을 생성할 수 있는 권한이 없습니다. 사용자에게 이러한 권한을 제공하려면 정책을 사용해야 합니다. 사용자에게 직접 권한을 부여할 수 있지만, 그룹에게 권한을 부여할 것을 강력히 권고합니다. 그렇게 하면 권한 관리가 훨씬 쉬워집니다. 어떤 사용자가 권한에 연결된 작업을 수행할 필요가 더 이상 없는 경우에는 그룹에서 그 사용자를 삭제하기만 하면 됩니다. 다른 어떤 사용자가 그 작업을 수행해야 한다면 해당 그룹에 추가해 권한을 부여하면 됩니다.

페더레이션 사용자 또는 역할을 위해 임시 보안 자격 증명을 생성할 수 있는 권한을 IAM 그룹에 부여하려면 다음 권한 중 하나 또는 둘 다를 부여하는 정책을 연결하면 됩니다.

  • 페더레이션 사용자들이 IAM 역할에 액세스하도록 하려면 AWS STS AssumeRole에 대한 액세스 권한을 부여하세요.

  • 역할이 필요 없는 페더레이션 사용자에 대해서는 AWS STS GetFederationToken에 대한 액세스 권한을 부여하십시오.

AssumeRoleGetFederationToken API 작업 간의 차이점을 보려면 임시 보안 자격 증명 요청 섹션을 참조하세요.

IAM 사용자는 GetSessionToken을 호출하여 임시 보안 자격 증명을 생성할 수도 있습니다. 사용자는 권한이 없어도 GetSessionToken을 호출할 수 있습니다. 이 작업의 목적은 MFA를 사용하는 사용자를 인증하는 것입니다. 정책을 사용하여 인증을 제어할 수는 없습니다. 즉 IAM 사용자가 임시 자격 증명을 생성할 목적으로 GetSessionToken을 호출하는 작업을 하지 못하게 할 수 없습니다.

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

다음 정책 예는 AWS 계정 123123123123UpdateApp 역할을 위해 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*"] }] }