X.509 인증서 정책 변수 AWS IoT Core - AWS IoT Core

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

X.509 인증서 정책 변수 AWS IoT Core

X.509 인증서 정책 변수는 정책 작성을 지원합니다. AWS IoT Core 이러한 정책은 X.509 인증서 특성을 기반으로 권한을 부여합니다. 다음 섹션에서는 이러한 인증서 정책 변수를 사용하는 방법을 설명합니다.

CertificateId

RegisterCertificateAPI에서는 응답 본문에 가 certificateId 표시됩니다. 인증서에 대한 정보를 가져오려면 in을 certificateId 사용하십시오 DescribeCertificate.

발행자 속성

다음 AWS IoT Core 정책 변수는 인증서 발급자가 설정한 인증서 속성에 따라 권한을 허용하거나 거부할 수 있도록 지원합니다.

  • iot:Certificate.Issuer.DistinguishedNameQualifier

  • iot:Certificate.Issuer.Country

  • iot:Certificate.Issuer.Organization

  • iot:Certificate.Issuer.OrganizationalUnit

  • iot:Certificate.Issuer.State

  • iot:Certificate.Issuer.CommonName

  • iot:Certificate.Issuer.SerialNumber

  • iot:Certificate.Issuer.Title

  • iot:Certificate.Issuer.Surname

  • iot:Certificate.Issuer.GivenName

  • iot:Certificate.Issuer.Initials

  • iot:Certificate.Issuer.Pseudonym

  • iot:Certificate.Issuer.GenerationQualifier

제목 속성

다음 AWS IoT Core 정책 변수는 인증서 발급자가 설정한 인증서 주체 속성을 기반으로 권한 부여 또는 거부를 지원합니다.

  • iot:Certificate.Subject.DistinguishedNameQualifier

  • iot:Certificate.Subject.Country

  • iot:Certificate.Subject.Organization

  • iot:Certificate.Subject.OrganizationalUnit

  • iot:Certificate.Subject.State

  • iot:Certificate.Subject.CommonName

  • iot:Certificate.Subject.SerialNumber

  • iot:Certificate.Subject.Title

  • iot:Certificate.Subject.Surname

  • iot:Certificate.Subject.GivenName

  • iot:Certificate.Subject.Initials

  • iot:Certificate.Subject.Pseudonym

  • iot:Certificate.Subject.GenerationQualifier

X.509 인증서는 이러한 속성에 하나 이상의 값을 포함할 수 있는 옵션을 제공합니다. 기본적으로 각 다중 값 속성의 정책 변수는 첫 번째 값을 반환합니다. 예를 들어 Certificate.Subject.Country 속성에는 국가 이름 목록이 포함되었을 수 있지만, 정책에서 평가될 때 iot:Certificate.Subject.Country는 첫 번째 국가 이름으로 대체됩니다.

1 기반 인덱스를 사용하여 첫 번째 값 이외의 특정 속성 값을 요청할 수 있습니다. 예를 들어 iot:Certificate.Subject.Country.1Certificate.Subject.Country 속성의 두 번째 국가로 대체됩니다. 존재하지 않는 인덱스 값을 지정할 경우(예: 속성에 값이 2개만 할당되었지만 세 번째 값을 요청하는 경우) 값이 대체되지 않고 권한 부여가 실패합니다. 정책 변수 이름에 .List 접미사를 사용하여 속성의 모든 값을 지정할 수 있습니다.

Registered devices

레지스트리에 사물로 등록된 디바이스의 경우 다음 정책은 AWS IoT Core 레지스트리에 사물 이름이 등록된 클라이언트에게 연결 권한을 부여합니다 AWS IoT Core . 이 정책은 사물 이름별 주제에 대한 게시 권한을 Certificate.Subject.Organization 속성이 OR로 설정된 인증서를 가진 클라이언트에게만 제한합니다. "Example Corp" "AnyCompany" 이 제한은 조건을 지정하는 "Condition" 필드를 사용하여 충족되며, 이전 작업을 허용하려면 조건을 충족해야 합니다. 이 경우에서 조건은 인증서와 연결된 Certificate.Subject.Organization 속성이 나열된 값 중 하나를 포함해야 하는 것입니다.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "iot:Connect" ], "Resource":[ "arn:aws:iot:us-east-1:123456789012:client/${iot:Connection.Thing.ThingName}" ] }, { "Effect":"Allow", "Action":[ "iot:Publish" ], "Resource":[ "arn:aws:iot:us-east-1:123456789012:topic/my/topic/${iot:Connection.Thing.ThingName}" ], "Condition":{ "ForAllValues:StringEquals":{ "iot:Certificate.Subject.Organization.List":[ "Example Corp", "AnyCompany" ] } } } ] }
Unregistered devices

AWS IoT Core 레지스트리에 사물로 등록되지 않은 장치의 경우 다음 정책은 클라이언트 ID client1client2, 및 를 사용하여 연결할 수 AWS IoT Core 있는 권한을 부여합니다. client3 이 정책은 클라이언트 ID별 주제에 대한 게시 권한을 Certificate.Subject.Organization 속성이 또는 로 설정된 인증서를 보유한 클라이언트에게만 제한합니다. "Example Corp" "AnyCompany" 위 작업을 허용하려면 충족해야 하는 조건을 지정하는 "Condition" 필드를 사용하여 이 제한을 수행할 수 있습니다. 이 경우에서 조건은 인증서와 연결된 Certificate.Subject.Organization 속성이 나열된 값 중 하나를 포함해야 하는 것입니다.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "iot:Connect" ], "Resource":[ "arn:aws:iot:us-east-1:123456789012:client/client1", "arn:aws:iot:us-east-1:123456789012:client/client2", "arn:aws:iot:us-east-1:123456789012:client/client3" ] }, { "Effect":"Allow", "Action":[ "iot:Publish" ], "Resource":[ "arn:aws:iot:us-east-1:123456789012:topic/my/topic/${iot:ClientId}" ], "Condition":{ "ForAllValues:StringEquals":{ "iot:Certificate.Subject.Organization.List":[ "Example Corp", "AnyCompany" ] } } } ] }

발행자 대체 이름 속성

다음 AWS IoT Core 정책 변수는 인증서 발급자가 설정한 발급자 대체 이름 속성을 기반으로 권한 부여 또는 거부를 지원합니다.

  • iot:Certificate.Issuer.AlternativeName.RFC822Name

  • iot:Certificate.Issuer.AlternativeName.DNSName

  • iot:Certificate.Issuer.AlternativeName.DirectoryName

  • iot:Certificate.Issuer.AlternativeName.UniformResourceIdentifier

  • iot:Certificate.Issuer.AlternativeName.IPAddress

제목 대체 이름 속성

다음 AWS IoT Core 정책 변수는 인증서 발급자가 설정한 주체 대체 이름 속성에 따라 권한 부여 또는 거부를 지원합니다.

  • iot:Certificate.Subject.AlternativeName.RFC822Name

  • iot:Certificate.Subject.AlternativeName.DNSName

  • iot:Certificate.Subject.AlternativeName.DirectoryName

  • iot:Certificate.Subject.AlternativeName.UniformResourceIdentifier

  • iot:Certificate.Subject.AlternativeName.IPAddress

기타 속성

iot:Certificate.SerialNumber 사용하여 인증서의 일련 번호를 기반으로 AWS IoT Core 리소스에 대한 액세스를 허용하거나 거부할 수 있습니다. iot:Certificate.AvailableKeys 정책 변수는 값을 갖는 모든 인증서 정책 변수의 이름을 포함합니다.

X.509 인증서 정책 변수 제한 사항

X.509 인증서 정책 변수에는 다음의 제한 사항이 적용됩니다.

와일드카드

인증서 속성에 와일드카드 문자가 있는 경우 정책 변수는 인증서 속성 값으로 대체되지 않습니다. 그러면 정책 문서에 ${policy-variable} 텍스트가 남게 됩니다. 이는 인증 실패를 초래할 수 있습니다. *, $, +, ?, # 등의 와일드카드 문자를 사용할 수 있습니다.

어레이 필드

어레이를 포함하는 인증서 속성은 5개 항목으로 제한됩니다. 추가 항목은 무시됩니다.

문자열 길이

모든 문자열 값은 1,024자로 제한됩니다. 인증서 속성에 1024자보다 긴 문자열이 포함된 경우 정책 변수는 인증서 속성 값으로 대체되지 않습니다. 그러면 정책 ${policy-variable} 문서에 내용이 그대로 남습니다. 이는 인증 실패를 초래할 수 있습니다.

특수 문자

,, ", \, +, =, <, >, ; 등의 특수 문자는 정책 변수에 사용될 때 앞에 백슬래시(\)가 있어야 합니다. 예를 들어, Amazon Web Services O=Amazon.com Inc. L=Seattle ST=Washington C=USAmazon Web Service O\=Amazon.com Inc. L\=Seattle ST\=Washington C\=US가 됩니다.