IAM 및 Amazon EC2 문제 해결 - AWS Identity and Access Management

IAM 및 Amazon EC2 문제 해결

이 문서의 정보를 사용하여 Amazon EC2 및 IAM 작업 시 발생할 수 있는 액세스 거부 또는 기타 문제를 해결할 수 있습니다.

인스턴스를 시작하려고 할 때 Amazon EC2 콘솔 IAM 역할 목록에서 보여야 할 역할이 보이지 않습니다.

다음을 확인하세요.

  • IAM 사용자로 로그인한 경우, ListInstanceProfiles를 호출할 권한이 있는지 확인하십시오. 역할 사용 시 필요한 권한에 대한 자세한 내용은 IAM 역할을 사용하여 Amazon EC2 인스턴스에서 실행되는 애플리케이션에 권한 부여의 ‘Amazon EC2로 역할을 사용하는 데 필요한 권한’을 참조하세요. 사용자에게 권한을 추가하는 방법에 대한 자세한 내용은 IAM 정책 관리을 참조하십시오.

    권한을 수정할 수 없는 경우, IAM을 사용할 수 있는 관리자에게 문의하여 권한을 업데이트해야 합니다.

  • IAM CLI 또는 API를 사용하여 역할을 만든 경우, 인스턴스 프로파일을 만들고 이 인스턴스 프로파일에 해당 역할을 추가했는지 확인합니다. 또한 역할과 인스턴스 프로파일의 이름을 다르게 설정한 경우, Amazon EC2 콘솔의 IAM 역할 목록에서 올바른 역할 이름을 볼 수 없습니다. Amazon EC2 콘솔의 IAM 역할 목록에는 역할 이름이 아니라 인스턴스 프로파일 이름이 나열되어 있습니다. 원하는 역할을 포함한 인스턴스 프로필 이름을 선택해야 합니다. 인스턴스 프로파일에 대한 자세한 내용은 인스턴스 프로파일 사용을 참조하십시오.

    참고

    IAM 콘솔을 사용하여 역할을 만드는 경우, 인스턴스 프로파일을 사용하지 않아도 됩니다. 인스턴스 프로파일은 IAM 콘솔에서 만드는 각 역할과 동일한 이름으로 생성되며, 역할은 해당 인스턴스 프로파일에 자동으로 추가됩니다. 하나의 인스턴스 프로파일은 하나의 IAM 역할만 포함할 수 있으며 이 제한은 늘릴 수 없습니다.

제 인스턴스에 있는 자격 증명의 역할이 잘못되었습니다.

인스턴스 프로파일의 역할이 최근에 교체되었을 수 있습니다. 그러한 경우 다음에 예정된 자동 자격 증명 교체 이후에 역할의 자격 증명을 사용할 수 있습니다.

변경을 적용하려면 인스턴스 프로파일 연결을 해제하고 나서 인스턴스 프로파일을 연결하거나, 인스턴스를 중지했다가 다시 시작합니다.

AddRoleToInstanceProfile을 호출하려고 하면 AccessDenied 오류가 발생합니다.

IAM 사용자로 요청을 하는 경우, 다음과 같은 권한이 있는지 확인합니다.

  • 인스턴스 프로파일 ARN과 일치하는 리소스가 포함된 iam:AddRoleToInstanceProfile(예: arn:aws:iam::999999999999:instance-profile/ExampleInstanceProfile).

역할 사용에 필요한 권한에 대한 자세한 내용은 다음 문서에서 "어떻게 시작하나요?"를 참조하세요. IAM 역할을 사용하여 Amazon EC2 인스턴스에서 실행되는 애플리케이션에 권한 부여. 사용자에게 권한을 추가하는 방법에 대한 자세한 내용은 IAM 정책 관리을 참조하십시오.

Amazon EC2 역할로 인스턴스를 시작하려고 하면 AccessDenied 오류가 발생합니다.

다음을 확인하세요.

  • 인스턴스 프로필 없이 인스턴스를 시작합니다. 이를 통해 문제가 Amazon EC2 인스턴스의 IAM 역할로 제한되어 있는지 확인할 수 있습니다.

  • IAM 사용자로 요청을 하는 경우, 다음과 같은 권한이 있는지 확인합니다.

    • 와일드카드 리소스("*")가 포함된 ec2:RunInstances

    • 역할 ARN과 일치하는 리소스가 포함된 iam:PassRole(예: arn:aws:iam::999999999999:role/ExampleRoleName)

  • IAM GetInstanceProfile 작업을 호출하여 올바른 인스턴스 프로파일 이름 또는 올바른 인스턴스 프로파일 ARN을 사용 중인지 확인합니다. 자세한 내용은 Amazon EC2 인스턴스로 IAM 역할 사용을 참조하세요.

  • IAM GetInstanceProfile 작업을 호출하여 인스턴스 프로필에 역할이 있는지 확인합니다. 인스턴스 프로파일이 비어 있으면 AccessDenied 오류가 발생합니다. 역할 만들기에 대한 자세한 내용은 IAM 역할 생성 단원을 참조하십시오.

역할 사용에 필요한 권한에 대한 자세한 내용은 다음 문서에서 "어떻게 시작하나요?"를 참조하세요. IAM 역할을 사용하여 Amazon EC2 인스턴스에서 실행되는 애플리케이션에 권한 부여. 사용자에게 권한을 추가하는 방법에 대한 자세한 내용은 IAM 정책 관리을 참조하십시오.

제 EC2 인스턴스의 임시 보안 자격 증명에 액세스할 수 없습니다.

EC2 인스턴스에서 임시 보안 자격 증명에 액세스하려면 먼저 IAM 콘솔을 사용하여 역할을 생성해야 합니다. 그런 다음 해당 역할을 사용하는 EC2 인스턴스를 시작하고 실행 중인 인스턴스를 검사합니다. 자세한 내용은 IAM 역할을 사용하여 Amazon EC2 인스턴스에서 실행되는 애플리케이션에 권한 부여어떻게 시작합니까?를 참조하십시오.

그래도 EC2 인스턴스에서 임시 보안 자격 증명에 액세스할 수 없는 경우 다음을 확인하십시오.

  • 인스턴스 메타데이터 서비스(IMDS)의 다른 부분에는 액세스할 수 있습니까? 액세스할 수 없는 경우 IMDS로의 요청에 대한 액세스를 차단하는 방화벽 규칙이 없는지 확인하십시오.

    [ec2-user@domU-12-31-39-0A-8D-DE ~]$ GET http://169.254.169.254/latest/meta-data/hostname; echo
  • IMDS의 iam 하위 트리가 있습니까? 그렇지 않은 경우 EC2 DescribeInstances API 작업을 호출하거나 aws ec2 describe-instances CLI 명령을 사용하여 인스턴스에 IAM 인스턴스 프로파일이 연결되어 있는지 확인합니다.

    [ec2-user@domU-12-31-39-0A-8D-DE ~]$ GET http://169.254.169.254/latest/meta-data/iam; echo
  • 오류가 있는지 IAM 하위 트리의 info 문서를 확인합니다. 오류가 있는 경우 자세한 내용은 IAM 하위 트리에서 info 문서의 오류란 무엇인가요?를 참조하십시오.

    [ec2-user@domU-12-31-39-0A-8D-DE ~]$ GET http://169.254.169.254/latest/meta-data/iam/info; echo

IAM 하위 트리에서 info 문서의 오류란 무엇인가요?

iam/info 문서는 "Code":"InstanceProfileNotFound"를 나타냅니다.

IAM 인스턴스 프로파일이 삭제되었으므로 Amazon EC2에서 더 이상 인스턴스에 자격 증명을 제공할 수 없습니다. Amazon EC2 인스턴스에 올바른 인스턴스 프로파일을 연결해야 합니다.

해당 이름의 인스턴스 프로파일이 있는 경우, 원래 인스턴스 프로파일이 삭제되고 동일한 이름의 다른 인스턴스가 생성된 것이 아닌지 확인하십시오.

  1. IAM GetInstanceProfile 작업을 호출하여 InstanceProfileId를 가져옵니다.

  2. Amazon EC2 DescribeInstances 작업을 호출하여 인스턴스의 IamInstanceProfileId를 가져옵니다.

  3. IAM 작업의 InstanceProfileId와 Amazon EC2 작업의 IamInstanceProfileId가 일치하는지 확인합니다.

ID가 다르면 인스턴스에 연결된 인스턴스 프로파일이 더 이상 유효하지 않습니다. 인스턴스에 올바른 인스턴스 프로파일을 연결해야 합니다.

iam/info 문서는 성공을 나타내지만 "Message":"Instance Profile does not contain a role..."을 나타냅니다.

역할이 IAM RemoveRoleFromInstanceProfile 작업에 의해 인스턴스 프로파일에서 제거되었습니다. IAM AddRoleToInstanceProfile 작업을 사용하여 인스턴스 프로파일에 역할을 연결할 수 있습니다. 역할의 자격 증명에 액세스하려면 다음에 예정된 새로 고침까지 기다려야 합니다.

변경을 적용하려면 인스턴스 프로파일 연결을 해제하고 나서 인스턴스 프로파일을 연결하거나, 인스턴스를 중지했다가 다시 시작합니다.

iam/security-credentials/[role-name] 문서는 "Code":"AssumeRoleUnauthorizedAccess"를 나타냅니다.

Amazon EC2에는 역할을 수임할 권한이 없습니다. 다음 예와 같이 역할을 수임할 권한은 해당 역할에 연결된 신뢰 정책에서 관리합니다. IAM UpdateAssumeRolePolicy API를 사용하여 신뢰 정책을 업데이트합니다.

{"Version": "2012-10-17","Statement": [{"Effect": "Allow","Principal": {"Service": ["ec2.amazonaws.com"]},"Action": ["sts:AssumeRole"]}]}

역할의 자격 증명에 액세스하려면 다음에 예정된 자동 새로 고침까지 기다려야 합니다.

변경을 적용하려면 인스턴스 프로파일 연결을 해제하고 나서 인스턴스 프로파일을 연결하거나, 인스턴스를 중지했다가 다시 시작합니다.