교차 서비스 혼동된 대리인 방지 - AWS IoT Core

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

교차 서비스 혼동된 대리인 방지

혼동된 대리자 문제는 작업을 수행할 권한이 없는 엔터티가 권한이 더 많은 엔터티에 작업을 수행하도록 강요할 수 있는 보안 문제입니다. In AWS서비스 간 사칭으로 인해 대리인 문제가 혼동될 수 있습니다. 교차 서비스 가장은 한 서비스(직접적으로 호출하는 서비스)가 다른 서비스(직접적으로 호출되는 서비스)를 직접적으로 호출할 때 발생할 수 있습니다. 호출하는 서비스는 다른 고객의 리소스에 대해 액세스 권한이 없는 방식으로 작동하게 권한을 사용하도록 조작될 수 있습니다. 이를 방지하려면 AWS 계정의 리소스에 대한 액세스 권한이 부여된 서비스 보안 주체를 통해 모든 서비스의 데이터를 보호하는 데 도움이 되는 도구를 제공합니다.

권한을 제한하려면 AWS IoT 리소스에 다른 서비스를 제공하는 경우 리소스 정책에서 aws:SourceArnaws:SourceAccount글로벌 조건 컨텍스트 키를 사용하는 것이 좋습니다. 두 전역 조건 컨텍스트 키를 모두 사용하는 경우 aws:SourceAccount 값과 aws:SourceArn 값의 계정은 동일한 정책 문에서 사용할 경우 동일한 계정 ID를 사용해야 합니다.

혼동되는 대리자 문제를 방지하는 가장 효과적인 방법은 리소스의 전체 Amazon Resource Name (ARN) 과 함께 aws:SourceArn 글로벌 조건 컨텍스트 키를 사용하는 것입니다. 에 대한 AWS IoT, 리소스별 권한 또는 형식을 aws:SourceArn 준수해야 arn:aws:iot:region:account-id:* 합니다. arn:aws:iot:region:account-id:resource-type/resource-id resource-id는 허용된 리소스의 이름 또는 ID이거나 허용된 리소스의 와일드카드 문장일 수 있습니다. IDs 다음 사항을 확인하십시오.region 귀하의 기기와 일치합니다 AWS IoT 지역 및 account-id 고객 계정 ID와 일치합니다.

다음 예는 의 aws:SourceArnaws:SourceAccount 글로벌 조건 컨텍스트 키를 사용하여 혼란스러운 대리인 문제를 방지하는 방법을 보여줍니다. AWS IoT 역할 신뢰 정책. 더 많은 예제는 혼동되는 2차 예방 수단의 세부 예시를 참조합니다.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"iot.amazonaws.com" }, "Action":"sts:AssumeRole", "Condition":{ "StringEquals":{ "aws:SourceAccount":"123456789012" }, "ArnLike":{ "aws:SourceArn":"arn:aws:iot:us-east-1:123456789012:*" } } } ] }
참고

액세스 거부 오류가 발생하는 경우 다음과 같은 서비스 통합 때문일 수 있습니다. AWS 보안 토큰 서비스 (STS) 는 aws:SourceArnaws:SourceAccount 컨텍스트 키를 지원하지 않습니다.

혼동되는 2차 예방 수단의 세부 예시

이 섹션에서는 의 aws:SourceArn 및 aws:SourceAccount 글로벌 조건 컨텍스트 키를 사용하여 혼동된 대리인 문제를 방지하는 방법에 대한 자세한 예를 제공합니다. AWS IoT 역할 신뢰 정책.

플릿 프로비저닝

프로비저닝 템플릿 리소스를 사용하여 플릿 프로비저닝을 구성할 수 있습니다. 프로비저닝 템플릿이 프로비저닝 역할을 참조하는 경우 해당 역할의 신뢰 정책에 및 조건 키가 포함될 수 있습니다. aws:SourceArn aws:SourceAccount 이러한 키는 구성이 요청을 호출할 수 있는 리소스를 제한합니다. sts:AssumeRole

다음 신뢰 정책이 적용되는 역할은 에 지정된 프로비저닝 템플릿의 IoT Principal (iot.amazonaws.com) 만 맡을 수 있습니다. SourceArn

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"iot.amazonaws.com" }, "Action":"sts:AssumeRole", "Condition":{ "StringEquals":{ "aws:SourceAccount":"123456789012" }, "ArnLike":{ "aws:SourceArn":"arn:aws:iot:us-east-1:123456789012:provisioningtemplate/example_template" } } } ] }

JITP

just-in-time provisioning (JITP) 에서는 프로비전 템플릿을 CA와 별개의 리소스로 사용하거나 템플릿 본문 및 역할을 CA 인증서 구성의 일부로 정의할 수 있습니다. 의 값은 다음과 같습니다. aws:SourceArn AWS IoT 역할 신뢰 정책은 프로비저닝 템플릿을 정의하는 방법에 따라 달라집니다.

공급 템플릿을 별도의 리소스로 정의하는 경우 의 값은 다음과 같을 aws:SourceArn 수 있습니다. "arn:aws:iot:region:account-id:provisioningtemplate/example_template" 에서 동일한 정책 예제를 사용할 수 있습니다. 플릿 프로비저닝

CA 인증서 리소스 내에 프로비저닝 템플릿을 정의하는 경우 의 값은 aws:SourceArn 또는 일 "arn:aws:iot:region:account-id:cacert/cert_id" 수 있습니다. "arn:aws:iot:region:account-id:cacert/*" 생성 시 CA 인증서의 ID와 같은 리소스 식별자를 알 수 없는 경우 와일드카드를 사용할 수 있습니다.

다음 신뢰 정책이 적용되는 역할은 에 지정된 CA 인증서의 IoT 주체 (iot.amazonaws.com) 만 맡을 수 있습니다. SourceArn

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"iot.amazonaws.com" }, "Action":"sts:AssumeRole", "Condition":{ "StringEquals":{ "aws:SourceAccount":"123456789012" }, "ArnLike":{ "aws:SourceArn":"arn:aws:iot:us-east-1:123456789012:cacert/8ecde6884f3d87b1125ba31ac3fcb13d7016de7f57cc904fe1cb97c6ae98196e" } } } ] }

CA 인증서를 만들 때 등록 구성에서 프로비전 역할을 참조할 수 있습니다. 프로비전 역할의 신뢰 정책을 사용하여 aws:SourceArn 역할이 위임할 수 있는 리소스를 제한할 수 있습니다. 그러나 CA 인증서를 등록하기 위한 초기 R egisterCACertificate 호출 중에는 aws:SourceArn 조건에 CA 인증서를 지정할 수 없습니다. ARN

이 문제를 해결하려면 (예: 등록된 특정 CA 인증서에 프로비저닝 역할 신뢰 정책을 지정하려는 경우) AWS IoT Core다음과 같은 작업을 수행할 수 있습니다.

  • 먼저 RegistrationConfig 파라미터를 제공하지 egisterCACertificate 않고 R을 호출합니다.

  • CA 인증서를 등록한 후 AWS IoT Core전화로 pdateCACertificate문의하세요.

    U pdateCACertificate 콜에서 새로 등록된 CA 인증서에 aws:SourceArn 설정된 프로비저닝 역할 신뢰 정책이 RegistrationConfig 포함된 a를 제공하십시오. ARN

보안 인증 제공업체

의 경우AWS IoT Core 자격 증명 공급자, 같은 것을 사용하세요. AWS 계정 에서 aws:SourceAccount 역할 별칭을 생성하고 rolealias 리소스 ARN 유형의 리소스와 일치하는 명령문을 지정하는 데 사용합니다. aws:SourceArn 에서 사용할 역할을 IAM 만드는 경우 AWS IoT Core 자격 증명 공급자의 경우 역할을 맡아야 할 수 있는 역할 별칭을 aws:SourceArn 조건에 포함시켜 서비스 간 요청을 승인해야 합니다. ARNs sts:AssumeRole

다음과 같은 신뢰 정책이 적용되는 역할은 다음의 보안 담당자만 맡을 수 있습니다. AWS IoT Core 에서 roleAlias 지정한 자격 증명 공급자 (credentials.iot.amazonaws.com). SourceArn 주체가 aws:SourceArn 조건에 지정된 것과 다른 역할 별칭에 대한 자격 증명을 검색하려고 시도하면 다른 역할 별칭이 동일한 역할을 참조하더라도 요청이 거부됩니다. IAM

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "credentials.iot.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": "arn:aws:iot:us-east-1:123456789012:rolealias/example_rolealias" } } } ] }