기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
혼동된 대리자 문제는 작업을 수행할 권한이 없는 엔터티가 권한이 더 많은 엔터티에 작업을 수행하도록 강요할 수 있는 보안 문제입니다. 에서 서비스 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:
. resource-id는 허용된 리소스의 이름 또는 ID이거나 허용된 리소스 ID의 와일드카드 문입니다. aws
:iot:region
:account-id
:*
리전
이 AWS IoT 리전과 일치하고 계정 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
:*
" } } } ] }
참고
액세스 거부 오류가 발생하는 경우 AWS
보안 토큰 서비스(STS)와의 서비스 통합이 aws:SourceArn
및 aws:SourceAccount
컨텍스트 키를 지원하지 않기 때문일 수 있습니다.
혼동된 대리자 방지의 세부 예제
이 섹션에서는 AWS IoT 역할 신뢰 정책에서 aws:SourceArn 및 aws:SourceAccount 전역 조건 컨텍스트 키를 사용하여 혼동된 대리자 문제를 방지하는 방법에 대한 자세한 예를 제공합니다.
플릿 프로비저닝
프로비저닝 템플릿 리소스를 사용하여 플릿 프로비저닝을 구성할 수 있습니다. 프로비저닝 템플릿이 프로비저닝 역할을 참조하면 해당 역할의 신뢰 정책에 aws:SourceArn
및 aws:SourceAccount
조건 키가 포함될 수 있습니다. 이러한 키는 구성이 sts:AssumeRole
요청을 간접적으로 호출할 수 있는 리소스를 제한합니다.
다음 신뢰 정책을 사용하는 역할은 SourceArn
에 지정된 프로비저닝 템플릿에 대한 IoT 위탁자(iot.amazonaws.com
)만 수임할 수 있습니다.
{
"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
적시 프로비저닝(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:
가 될 수 있습니다. 생성 시 CA 인증서의 ID와 같은 리소스 식별자를 알 수 없는 경우 와일드카드를 사용할 수 있습니다.region
:account-id
:cacert/*
"
다음 신뢰 정책이 있는 역할은 SourceArn
에 지정된 CA 인증서의 IoT 위탁자(iot.amazonaws.com
)만 수임할 수 있습니다.
{
"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 인증서가에 등록된 후 CA 인증서에서 UpdateCACertificate를 AWS IoT Core호출합니다.
UpdateCACertificate 호출에서 새로 등록된 CA 인증서의 ARN으로
aws:SourceArn
설정된 프로비저닝 역할 신뢰 정책을 포함하는RegistrationConfig
를 제공합니다.
보안 인증 제공업체
AWS IoT Core 자격 증명 공급자의 경우에서 역할 별칭을 생성하는 데 AWS 계정 사용하는 것과 동일한를 사용하고 aws:SourceAccount
에서 역할별 리소스 유형의 리소스 ARN과 일치하는 문을 지정합니다aws:SourceArn
. AWS IoT Core 자격 증명 공급자와 함께 사용할 IAM 역할을 생성할 때 역할을 수임해야 할 수 있는 역할 별칭의 ARNs을 aws:SourceArn
조건에 포함시켜 교차 서비스 sts:AssumeRole
요청을 승인해야 합니다.
다음 신뢰 정책이 있는 역할은 SourceArn
에 지정된 roleAlias에 대한 AWS IoT Core 자격 증명 공급자(credentials.iot.amazonaws.com
)의 위탁자만 수임할 수 있습니다. 위탁자가 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
"
}
}
}
]
}