X.509 証明書 AWS IoT Core ポリシー変数 - AWS IoT Core

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

X.509 証明書 AWS IoT Core ポリシー変数

X.509 証明書ポリシー変数では、X.509 証明書の属性に基づいてアクセス許可を付与する AWS IoT Core ポリシーを書き込むことができます。次のセクションでそれらの証明書のポリシー変数を使用する方法を説明します。

CertificateId

RegisterCertificate API では、レスポンス本文に certificateId が表示されます。証明書に関する情報を取得するにはcertificateIdDescribeCertificate

発行元の属性

次の 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 証明書は、これらの属性が 1 つ以上の値を含むようにします。デフォルトでは、複数値の各属性用のポリシー変数は最初の値を返します。たとえば、Certificate.Subject.Country 属性には国名のリストが含まれる場合がありますが、ポリシーで評価されると、iot:Certificate.Subject.Country は最初の国名に置き換えられます。1 から始めるインデックスを使用して、最初の値以外の特定の属性値をリクエストできます。たとえば、iot:Certificate.Subject.Country.1 は、Certificate.Subject.Country 属性の 2 番目の国名に置き換えられます。存在していないインデックス値を指定する場合、(たとえば、属性に割り当てられた値が 2 つのみのとき 3 番目の値を要求すると) 置き換えはされず、認可は失敗します。ポリシーの変数名で、.List サフィックスを使用して、属性の値をすべて指定できます。

Registered devices (2)

AWS IoT Core レジストリでモノとして登録されているデバイスの場合、次のポリシーにより、モノの名前が AWS IoT Core レジストリに登録されたクライアントの接続が許可されます。ただし、モノの名前に固有のトピックに発行する権限が、Certificate.Subject.Organization属性はに設定しています"Example Corp"または"AnyCompany"。この制限は、前述のアクションを許可するために満たす必要がある条件を指定する "Condition" フィールドを使用して達成できます。この場合の条件は、証明書に関連付けられた Certificate.Subject.Organization 属性に、リストされた値の 1 つを含める必要があることです。

{ "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 (2)

AWS IoT Core レジストリでモノとして登録されていないデバイスの場合、次のポリシーにより、クライアント ID を使用して AWS IoT Core に接続するアクセス許可が付与されます。client1client2, およびclient3と同じですが、client-id 固有のトピックに公開する権利を制限します。Certificate.Subject.Organization属性はに設定しています"Example Corp"または"AnyCompany"。この制限は、前述のアクションを許可するために満たす必要がある条件を指定する "Condition" フィールドを使用して達成できます。この場合の条件は、証明書に関連付けられた Certificate.Subject.Organization 属性に、リストされた値の 1 つを含める必要があることです。

{ "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 つの項目に制限されます。追加項目は無視されます。

文字列の長さ

すべての文字列値は 1024 文字に制限されています。証明書の属性に、文字列が 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 になります。