임시 보안 자격 증명에 대한 권한 비활성화 - AWS Identity and Access Management

임시 보안 자격 증명에 대한 권한 비활성화

임시 보안 인증 정보는 만료될 때까지 유효합니다. 이러한 보안 인증 정보는 900초(15분)부터 최대 129,600초(36시간)까지 지정된 기간 동안 유효합니다. 기본 세션 기간은 43,200초(12시간)입니다. 이러한 보안 인증 정보는 취소할 수 있지만, 보안 인증 정보가 도용되어 악의적인 계정 활동에 사용되지 않도록 하려면 역할의 권한도 변경해야 합니다. 임시 보안 인증 정보에 할당된 권한은 AWS 요청을 위해 사용될 때마다 평가됩니다. 보안 인증 정보에서 모든 권한을 제거하면 이를 사용하는 AWS 요청은 실패합니다.

정책 업데이트가 적용되는 데 몇 분 정도 걸릴 수 있습니다. 역할의 임시 보안 인증 정보를 취소하여 역할을 수임하는 모든 사용자에게 재인증과 새 보안 인증 정보 요청을 강제합니다.

AWS 계정 루트 사용자에 대한 권한은 변경할 수 없습니다. 따라서 루트 사용자로 로그인할 때 GetFederationToken 또는 GetSessionToken을 호출하여 생성된 임시 보안 자격 증명에 대한 권한도 변경할 수 없습니다. 이런 이유 때문에 루트 사용자로 GetFederationToken 또는 GetSessionToken을 호출하지 않는 것이 좋습니다.

중요

IAM Identity Center 사용자의 경우 AWS IAM Identity Center 사용 설명서의 Disable user access를 참조하세요. 또한 IAM Identity Center 콘솔에서 클라우드 애플리케이션 또는 사용자 지정 SAML 2.0 애플리케이션에 대한 사용자 액세스를 제거할 수 있습니다.

역할과 관련된 모든 세션에 대한 액세스 거부

다음에 의한 의심스러운 액세스가 우려되는 경우 이 방법을 사용합니다.

  • 크로스 계정 액세스를 사용하는 다른 계정의 보안 주체

  • 계정 내 AWS 리소스에 액세스할 권한이 있는 외부 사용자 자격 증명

  • 웹 자격 증명 공급자로 모바일 또는 웹 애플리케이션에서 인증된 사용자

이 절차는 역할을 수임할 권한이 있는 모든 사용자에 대한 권한을 거부합니다.

AssumeRole, AssumeRoleWithSAMLAssumeRoleWithWebIdentity, GetFederationToken 또는 GetSessionToken을 직접적으로 호출하여 획득한 임시 보안 인증 정보에 할당된 권한을 변경하거나 제거하려면 역할에 대한 권한을 정의하는 권한 정책을 편집 또는 삭제하면 됩니다.

중요

보안 주체 액세스를 허용하는 리소스 기반 정책이 있는 경우 해당 리소스에 대한 명시적 거부도 추가해야 합니다. 세부 정보는 리소스 기반 정책으로 세션 사용자 거부을 참조하십시오.

  1. AWS Management Console에 로그인하고 IAM 콘솔을 엽니다.

  2. 탐색 창에서 편집하려는 역할의 이름을 선택합니다. 검색 상자를 사용하여 목록을 필터링할 수 있습니다.

  3. 관련 정책을 선택합니다.

  4. 권한(Permissions) 탭을 선택합니다.

  5. JSON 탭을 선택하고 정책을 업데이트하여 모든 리소스 및 작업을 거부합니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "*", "Resource": "*" } ] }
  6. 검토 페이지에서 정책 요약을 검토하고 나서 변경 사항 저장을 선택하여 작업을 저장합니다.

정책을 업데이트하면 이러한 변경은 역할의 권한 정책을 변경하기 전에 발급된 보안 인증 정보를 비롯해 해당 역할에 연결된 모든 임시 보안 인증 정보의 권한에 영향을 미칩니다. 정책을 업데이트한 후 역할의 임시 보안 인증 정보를 취소하여 역할의 발급된 보안 인증 정보에 대한 모든 권한을 즉시 취소할 수 있습니다.

특정 세션에 대한 액세스 거부

모두 거부 정책을 사용하여 IdP에서 수임할 수 있는 역할을 업데이트하거나 역할을 완전히 삭제하면 해당 역할에 액세스할 수 있는 모든 사용자의 액세스가 중단됩니다. 역할과 연결된 다른 모든 세션의 권한에 영향을 미치지 않고 Principal 요소를 기반으로 액세스를 거부할 수 있습니다.

Principal에 대한 권한은 조건 컨텍스트 키 또는 리소스 기반 정책을 사용하여 거부될 수 있습니다.

작은 정보

AWS CloudTrail 로그를 사용하여 페더레이션 사용자의 ARN을 찾을 수 있습니다. 자세한 내용은 How to Easily Identify Your Federated Users by Using AWS CloudTrail을 참조하세요.

조건 컨텍스트 키로 사용자 세션 거부

보안 인증 정보를 생성한 IAM 사용자 또는 역할의 권한에 영향을 미치지 않고 임시 보안 인증 정보에 대한 액세스를 거부하고자 하는 상황에서 조건 컨텍스트 키를 사용할 수 있습니다.

조건 컨텍스트 키에 대한 자세한 내용은 AWS 글로벌 조건 컨텍스트 키 섹션을 참조하세요.

참고

보안 주체 액세스를 허용하는 리소스 기반 정책이 있는 경우 이 단계를 완료한 후 리소스 기반 정책에 명시적 거부 문도 추가해야 합니다.

정책을 업데이트한 후 역할의 임시 보안 인증 정보를 취소하여 모든 발급된 보안 인증 정보를 즉시 취소할 수 있습니다.

aws:PrincipalArn

조건 컨텍스트 키 aws:PrincipalArn을 사용하여 특정 보안 주체 ARN에 대한 액세스를 거부할 수 있습니다. IAM 사용자의 고유 식별자(ID), 역할 또는 페더레이션 사용자를 지정하면 정책의 Condition 요소에 임시 보안 인증 정보가 연결됩니다.

  1. IAM 콘솔 탐색 창에서 편집하려는 역할의 이름을 선택합니다. 검색 상자를 사용하여 목록을 필터링할 수 있습니다.

  2. 관련 정책을 선택합니다.

  3. 권한(Permissions) 탭을 선택합니다.

  4. JSON 탭을 선택하고 다음 예제와 같이 보안 주체 ARN에 대한 거부 문을 추가합니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "ArnEquals": { "aws:PrincipalArn": [ "arn:aws:iam::222222222222:role/ROLENAME", "arn:aws:iam::222222222222:user/USERNAME", "arn:aws:sts::222222222222:federated-user/USERNAME" ] } } } ] }
  5. 검토 페이지에서 정책 요약을 검토하고 나서 변경 사항 저장을 선택하여 작업을 저장합니다.

aws:userid

조건 컨텍스트 키 aws:userid를 사용하여 IAM 사용자 또는 역할에 연결된 모든 또는 특정 임시 보안 인증 정보에 대한 액세스를 거부할 수 있습니다. IAM 사용자의 고유 식별자(ID), 역할 또는 페더레이션 사용자를 지정하면 정책의 Condition 요소에 임시 보안 인증 정보가 연결됩니다.

다음 정책은 조건 컨텍스트 키 aws:userid를 사용하여 임시 보안 인증 정보 세션에 대한 액세스를 거부하는 방법의 예를 보여줍니다.

  • AIDAXUSER1은 IAM 사용자의 고유 식별자를 나타냅니다. IAM 사용자의 고유 식별자를 컨텍스트 키 aws:userid의 값으로 지정하면 IAM 사용자와 연결된 모든 세션을 거부합니다.

  • AROAXROLE1은 IAM 역할의 고유 식별자를 나타냅니다. IAM 역할의 고유 식별자를 컨텍스트 키 aws:userid의 값으로 지정하면 역할과 연결된 모든 세션을 거부합니다.

  • AROAXROLE2는 수임된 역할 세션의 고유 식별자를 나타냅니다. 수임된 역할 고유 식별자의 호출자 지정 역할 세션 이름 부분에서 StringLike 조건 연산자가 사용되는 경우 역할 세션 이름 또는 와일드카드 문자를 지정할 수 있습니다. 역할 세션 이름을 지정하면 보안 인증 정보를 생성한 역할의 권한에 영향을 미치지 않으면서 명명된 역할 세션을 거부합니다. 역할 세션 이름에 와일드카드를 지정하면 해당 역할과 연결된 모든 세션을 거부합니다.

  • account-id:<federated-user-caller-specified-name>은 페더레이션 사용자 세션의 고유 식별자를 나타냅니다. 페더레이션 사용자는 GetFederationToken API를 직접적으로 호출하는 IAM 사용자에 의해 생성됩니다. 페더레이션 사용자의 고유 식별자를 지정한 경우 보안 인증 정보를 생성한 역할의 권한에 영향을 미치지 않으면서 명명된 페더레이션 사용자 세션을 거부합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "StringLike": { "aws:userId": [ "AIDAXUSER1", "AROAXROLE1", "AROAXROLE2:<caller-specified-role-session-name>", "account-id:<federated-user-caller-specified-name>" ] } } } ] }

key values 키 값의 구체적인 예제는 보안 주체 키 값 섹션을 참조하세요. IAM 고유 식별자에 대한 자세한 내용은 고유 식별자 섹션을 참조하세요.

리소스 기반 정책으로 세션 사용자 거부

보안 주체 ARN이 리소스 기반 정책에도 포함된 경우 리소스 기반 정책의 Principal 요소에 있는 특정 사용자의 principalId 또는 sourceIdentity 값을 기반으로 액세스를 취소해야 합니다. 역할에 대한 권한 정책만 업데이트하는 경우 사용자는 리소스 기반 정책에서 허용된 작업을 계속 수행할 수 있습니다.

  1. 서비스가 리소스 기반 정책을 지원하는지 여부는 AWS IAM으로 작업하는 서비스에서 참조하세요.

  2. AWS Management Console에 로그인하고 서비스에 대한 콘솔을 엽니다. 각 서비스는 콘솔에서 정책을 연결하는 위치가 다릅니다.

  3. 정책 문을 편집하여 보안 인증 정보의 식별 정보를 지정합니다.

    1. Principal에서 거부할 보안 인증 정보의 ARN을 입력합니다.

    2. Effect에서 ‘Deny’를 입력합니다.

    3. Action에서 거부할 서비스 네임스페이스와 작업 이름을 입력합니다. 모든 작업을 거부하려면 와일드카드 (*) 문자를 사용합니다. 예: ‘s3:*.’

    4. Resource에서 대상 리소스의 ARN을 입력합니다. 예: "arn:aws:s3:::EXAMPLE-BUCKET."

    { "Version": "2012-10-17", "Statement": { "Principal": [ "arn:aws:iam::222222222222:role/ROLENAME", "arn:aws:iam::222222222222:user/USERNAME", "arn:aws:sts::222222222222:federated-user/USERNAME" ], "Effect": "Deny", "Action": "s3:*", "Resource": "arn:aws:s3:::EXAMPLE-BUCKET" } }
  4. 작업을 저장합니다.