構成証明ポリシーを作成する方法
構成証明ポリシーは、Microsoft Azure Attestation にアップロードされるファイルです。 Azure Attestation により、構成証明固有の形式でポリシーをアップロードする柔軟性が得られます。 また、JSON Web Signature でエンコードしたバージョンのポリシーをアップロードすることもできます。 構成証明ポリシーの作成を担うのはポリシー管理者です。 構成証明のほとんどのシナリオでは、証明書利用者がポリシー管理者としての役割を果たします。 構成証明の呼び出し側のクライアントが構成証明の証拠を送信し、その証拠をサービスが解析して入力要求 (一連のプロパティ、値) に変換します。 その要求が、ポリシーに定義されている内容に応じてサービスによって処理され、計算結果が返されます。
ポリシーには、構成証明トークンの内容、プロパティ、承認の基準を決めるルールが含まれています。
version=1.0;
authorizationrules
{
c:[type="secureBootEnabled", issuer=="AttestationService"]=> permit()
};
issuancerules
{
c:[type="secureBootEnabled", issuer=="AttestationService"]=> issue(claim=c)
c:[type="notSafeMode", issuer=="AttestationService"]=> issue(claim=c)
};
ポリシー ファイルには、次の 3 つのセグメントがあります。
- version: 準拠している文法のバージョン番号です。
現在サポートされているのはバージョン 1.0 のみです。version=MajorVersion.MinorVersion
- authorizationrules: 構成証明が issuancerules に進むべきかどうかを判断するために最初にチェックされる要求規則のコレクション。 要求規則は、定義されている順に適用されます。
- issuancerules: ポリシーに定義されている構成証明の結果に他の情報を追加する目的で評価される要求規則のコレクション。 要求規則は、定義されている順に適用されます。省略することもできます。
詳細については、「要求と要求規則」をご覧ください。
ポリシー ファイルの下書きを作成する
- 新しいファイルを作成します。
- ファイルにバージョンを追加します。
- authorizationrules と issuancerules のセクションを追加します。
この承認規則には、条件のない deny() アクションが含まれているため、発行規則は処理されません。 または、承認規則に permit() アクションを追加して、発行規則の処理を許可することもできます。version=1.0; authorizationrules { =>deny(); }; issuancerules { };
- 承認規則に要求規則を追加します。
受信要求セットに、種類、値、発行元に一致する要求が含まれていた場合、permit() アクションがポリシー エンジンに、issuancerules を処理するよう伝えます。version=1.0; authorizationrules { [type=="secureBootEnabled", value==true, issuer=="AttestationService"]=>permit(); }; issuancerules { };
- issuancerules に要求規則を追加します。
送信される要求セットには、次の要求が含まれています。version=1.0; authorizationrules { [type=="secureBootEnabled", value==true, issuer=="AttestationService"]=>permit(); }; issuancerules { => issue(type="SecurityLevelValue", value=100); };
複雑なポリシーも同様の方法で作成できます。 詳細については、構成証明ポリシーの例を参照してください。[type="SecurityLevelValue", value=100, valueType="Integer", issuer="AttestationPolicy"]
- ファイルを保存します。
JSON Web Signature 形式でポリシー ファイルを作成する
ポリシー ファイルを作成した後、JSON Web Signature (JWS) 形式でポリシーをアップロードするには、次の手順に従います。
UTF-8 でエンコードされたポリシーをペイロードとして含む JWS (RFC 7515) を生成します。 Base64Url でエンコードされたポリシーのペイロード ID は、"AttestationPolicy" である必要があります。
サンプル JWT:
Header: {"alg":"none"} Payload: {"AttestationPolicy":" Base64Url (policy)"} Signature: {} JWS format: eyJhbGciOiJub25lIn0.XXXXXXXXX.
ポリシーに署名します (省略可能)。 Azure Attestation では、次のアルゴリズムがサポートされます。
- None:ポリシーのペイロードは署名されません。
- RS256: ポリシーのペイロードに署名する際にサポートされるアルゴリズム。
JWS をアップロードして、ポリシーを検証します。
- ポリシー ファイルに構文エラーがなければ、サービスはポリシー ファイルを受理します。
- ポリシー ファイルに構文エラーがある場合、サービスはポリシー ファイルを拒否します。