기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
교차 서비스 혼동된 대리인 방지
혼동된 대리자 문제는 작업을 수행할 권한이 없는 엔터티가 권한이 더 많은 엔터티에 작업을 수행하도록 강요할 수 있는 보안 문제입니다. 에서 서비스 AWS간 사칭은 혼동된 대리자 문제를 초래할 수 있습니다. 교차 서비스 가장은 한 서비스(직접적으로 호출하는 서비스)가 다른 서비스(직접적으로 호출되는 서비스)를 직접적으로 호출할 때 발생할 수 있습니다. 호출하는 서비스는 다른 고객의 리소스에 대해 액세스 권한이 없는 방식으로 작동하게 권한을 사용하도록 조작될 수 있습니다. 이를 방지하기 위해 AWS 에서는 계정의 리소스에 대한 액세스 권한이 부여된 서비스 보안 주체를 사용하여 모든 서비스에 대한 데이터를 보호하는 데 도움이 되는 도구를 제공합니다.
리소스에 다른 서비스를 AWS IoT 제공하는 권한을 제한하려면 리소스 정책에서 aws:SourceArn
및 aws:SourceAccount
전역 조건 컨텍스트 키를 사용하는 것이 좋습니다. 두 전역 조건 컨텍스트 키를 모두 사용하는 경우 aws:SourceAccount
값과 aws:SourceArn
값의 계정은 동일한 정책 문에서 사용할 경우 동일한 계정 ID를 사용해야 합니다.
혼동된 대리자 문제로부터 보호하는 가장 효과적인 방법은 리소스의 전체 Amazon 리소스 이름(ARN)과 함께 aws:SourceArn
전역 조건 컨텍스트 키를 사용하는 것입니다. 의 경우 AWS IoT는 arn:
리소스별 권한 또는 의 형식을 준수해야 aws
:iot:region
:account-id
:resource-type/resource-id
aws:SourceArn
합니다arn:
. 리소스 ID는 허용된 리소스의 이름 또는 ID이거나 허용된 리소스 의 와일드카드 문일 수 있습니다IDs. 가 aws
:iot:region
:account-id
:*
region
는 AWS IoT 리전 및 와 일치합니다.account-id
가 고객 계정 ID와 일치합니다.
다음 예제에서는 AWS IoT 역할 신뢰 정책의 aws:SourceArn
및 aws:SourceAccount
전역 조건 컨텍스트 키를 사용하여 혼동된 대리자 문제를 방지하는 방법을 보여줍니다. 더 많은 예제는 혼동된 대리자 방지의 세부 예제를 참조합니다.
{ "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
:*
" } } } ] }
참고
액세스 거부 오류가 발생하는 경우 Security Token Service(STS)와의 AWS 서비스 통합이 aws:SourceArn
및 aws:SourceAccount
컨텍스트 키를 지원하지 않기 때문일 수 있습니다.
혼동된 대리자 방지의 세부 예제
이 섹션에서는 AWS IoT 역할 신뢰 정책의 aws:SourceArn 및 aws:SourceAccount 전역 조건 컨텍스트 키를 사용하여 혼동된 대리자 문제를 방지하는 방법에 대한 자세한 예를 제공합니다.
플릿 프로비저닝
프로비저닝 템플릿 리소스를 사용하여 플릿 프로비저닝을 구성할 수 있습니다. 프로비저닝 템플릿이 프로비저닝 역할을 참조하면 해당 역할의 신뢰 정책에 aws:SourceArn
및 aws:SourceAccount
조건 키가 포함될 수 있습니다. 이러한 키는 구성이 sts:AssumeRole
요청을 호출할 수 있는 리소스를 제한합니다.
다음 신뢰 정책을 사용하는 역할은 에 지정된 프로비저닝 템플릿에 대한 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
:provisioningtemplate/example_template
" } } } ] }
JITP
just-in-time 프로비저닝(JITP)에서는 프로비저닝 템플릿을 CA와 별도의 리소스로 사용하거나 템플릿 본문과 역할을 CA 인증서 구성의 일부로 정의할 수 있습니다. aws:SourceArn
AWS IoT 역할 신뢰 정책의 값은 프로비저닝 템플릿을 정의하는 방법에 따라 달라집니다.
프로비저닝 템플릿을 별도의 리소스로 정의하는 경우 의 값은 가 될 aws:SourceArn
수 있습니다"arn:aws:iot:
. 에서 동일한 정책 예제를 사용할 수 있습니다플릿 프로비저닝.region
:account-id
:provisioningtemplate/example_template
"
CA 인증서 리소스 내에서 프로비저닝 템플릿을 정의하는 경우 의 값은 "arn:aws:iot:
또는 가 될 region
:account-id
:cacert/cert_id
"aws:SourceArn
수 있습니다"arn:aws:iot:
. 생성 시 CA 인증서의 ID와 같은 리소스 식별자를 알 수 없는 경우 와일드카드를 사용할 수 있습니다.region
:account-id
:cacert/*
"
다음 신뢰 정책이 있는 역할은 에 지정된 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 인증서를 등록하기 위한 초기 RegisterCACertificate 호출 중에는 CA 인증서ARN의 를 aws:SourceArn
조건에 지정하지 않아도 됩니다.
이를 해결하려면, 즉 에 등록된 특정 CA 인증서에 프로비저닝 역할 신뢰 정책을 지정하려면 다음을 수행할 AWS IoT Core수 있습니다.
-
먼저
RegistrationConfig
파라미터를 제공하지 않고 RegisterCACertificate을 호출합니다. -
CA 인증서가 에 등록된 후 에서 UpdateCACertificate를 AWS IoT Core호출합니다.
U pdateCACertificate 호출에서 새로 등록된 CA 인증서ARN의 로
aws:SourceArn
설정된 프로비저닝 역할 신뢰 정책을RegistrationConfig
포함하는 를 제공합니다.
보안 인증 제공업체
AWS IoT Core 자격 증명 공급자 의 경우 에서 역할 별칭을 생성하는 데 AWS 계정 사용하는 것과 동일한 를 사용하고 aws:SourceAccount
에서 역할별 리소스 유형의 리소스와 일치하는 문ARN을 지정합니다aws:SourceArn
. AWS IoT Core 자격 증명 공급자와 함께 사용할 IAM 역할을 생성할 때 역할을 수임해야 할 수 있는 역할 별칭ARNs을 aws:SourceArn
조건에 포함시켜 교차 서비스 sts:AssumeRole
요청을 승인해야 합니다.
다음 신뢰 정책이 있는 역할은 에 roleAlias 지정된 에 대한 AWS IoT Core 자격 증명 공급자(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
" } } } ] }