Authorization API
認可 API のリファレンスガイド
概要
第1章 Authorization API
1.1. LocalResourceAccessReview [authorization.openshift.io/v1]
- 説明
LocalResourceAccessReview は、特定の namespace で仕様により指定されたアクションの実行を許可されているユーザーおよびグループのリストを要求する手段です。
互換性レベル 1: メジャーリリース内で最低 12 か月または 3 つのマイナーリリース (どちらか長い方) の間安定しています。
- 型
-
object
1.2. LocalSubjectAccessReview [authorization.openshift.io/v1]
- 説明
LocalSubjectAccessReview は、ユーザーまたはグループが特定の namespace でアクションを実行できるかどうかに関する情報を要求するオブジェクトです。
互換性レベル 1: メジャーリリース内で最低 12 か月または 3 つのマイナーリリース (どちらか長い方) の間安定しています。
- 型
-
object
1.3. ResourceAccessReview [authorization.openshift.io/v1]
- 説明
ResourceAccessReview は、仕様により指定されたアクションの実行を許可されているユーザーおよびグループのリストを要求する手段です。
互換性レベル 1: メジャーリリース内で最低 12 か月または 3 つのマイナーリリース (どちらか長い方) の間安定しています。
- 型
-
object
1.4. SelfSubjectRulesReview [authorization.openshift.io/v1]
- 説明
SelfSubjectRulesReview は、namespace で実行可能なアクションを判別するために作成できるリソースです。
互換性レベル 1: メジャーリリース内で最低 12 か月または 3 つのマイナーリリース (どちらか長い方) の間安定しています。
- 型
-
object
1.5. SubjectAccessReview [authorization.openshift.io/v1]
- 説明
SubjectAccessReview は、ユーザーまたはグループがアクションを実行できるかどうかに関する情報を要求するオブジェクトです。
互換性レベル 1: メジャーリリース内で最低 12 か月または 3 つのマイナーリリース (どちらか長い方) の間安定しています。
- 型
-
object
1.6. SubjectRulesReview [authorization.openshift.io/v1]
- 説明
SubjectRulesReview は、別のユーザーが namespace で実行可能なアクションを判別するために作成できるリソースです。
互換性レベル 1: メジャーリリース内で最低 12 か月または 3 つのマイナーリリース (どちらか長い方) の間安定しています。
- 型
-
object
1.7. SelfSubjectReview [authentication.k8s.io/v1]
- 説明
- SelfSubjectReview には、このリクエストを行ったユーザーに関する kube-apiserver が保持するユーザー情報が含まれています。偽装を使用すると、ユーザーは偽装されているユーザーのユーザー情報を受け取ります。偽装またはリクエストヘッダー認証が使用されていると、追加のキーの大文字と小文字は無視され、小文字で返されます。
- 型
-
object
1.8. TokenRequest [authentication.k8s.io/v1]
- 説明
- TokenRequest は、指定のサービスアカウントのトークンを要求します。
- 型
-
object
1.9. TokenReview [authentication.k8s.io/v1]
- 説明
- TokenReview は、既知のユーザーに対してトークンを認証します。注: TokenReview 要求は、kube-apiserver の webhook トークンオーセンティケータープラグインによりキャッシュされる場合があります。
- 型
-
object
1.10. LocalSubjectAccessReview [authorization.k8s.io/v1]
- 説明
- LocalSubjectAccessReview は、ユーザーまたはグループが特定の namespace でアクションを実行できるかどうかを確認します。namespace のスコープ指定されたリソースがあると、パーミッションチェックを含む namespace のスコープ指定されたポリシーの付与がはるかに容易になります。
- 型
-
object
1.11. SelfSubjectAccessReview [authorization.k8s.io/v1]
- 説明
- SelfSubjectAccessReview は、現在のユーザーがアクションを実行できるかどうかを確認します。spec.namespace に入力しない場合は、"すべての namespace 内" を意味します。ユーザーは常にアクションを実行できるかどうかを確認できる必要があるため、Self は特殊なケースです。
- 型
-
object
1.12. SelfSubjectRulesReview [authorization.k8s.io/v1]
- 説明
- SelfSubjectRulesReview は、現在のユーザーが namespace 内で実行できるアクションのセットを列挙します。サーバーの認証モード、および評価中に発生したエラーに応じて、返されるアクションのリストが不完全な場合があります。SelfSubjectRulesReview は、UI でアクションを表示/非表示にしたり、エンドユーザーにパーミッションに関する理由を素早く伝えたりするために使用します。これは、代理人の混乱、キャッシュの有効期限/失効、および正確性の懸念を引き起こすため、承認の決定を推進するために外部システムに使用されるべきではありません。SubjectAccessReview および LocalAccessReview は、API サーバーへの承認決定を遅らせる正しい方法です。
- 型
-
object
1.13. SubjectAccessReview [authorization.k8s.io/v1]
- 説明
- SubjectAccessReview は、ユーザーまたはグループがアクションを実行できるかどうかをチェックします。
- 型
-
object
第2章 LocalResourceAccessReview [authorization.openshift.io/v1]
- 説明
LocalResourceAccessReview は、特定の namespace で仕様により指定されたアクションの実行を許可されているユーザーおよびグループのリストを要求する手段です。
互換性レベル 1: メジャーリリース内で最低 12 か月または 3 つのマイナーリリース (どちらか長い方) の間安定しています。
- 型
-
object
- 必須
-
namespace
-
verb
-
resourceAPIGroup
-
resourceAPIVersion
-
resource
-
resourceName
-
path
-
isNonResourceURL
-
2.1. 仕様
プロパティー | 型 | 説明 |
---|---|---|
|
| apiVersion はオブジェクトのこの表現のバージョンスキーマを定義します。サーバーは認識されたスキーマを最新の内部値に変換し、認識されない値は拒否することがあります。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources を参照してください。 |
| content は、作成および更新のリクエストの実際のコンテンツです。 | |
|
| isNonResourceURL は、これが非リソース URL (リソース階層外) の要求である場合に true になります。 |
|
| kind はこのオブジェクトが表す REST リソースを表す文字列の値です。サーバーはクライアントが要求を送信するエンドポイントからこれを推測できる場合があります。これは更新できません。CamelCase を使用します。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds を参照してください。 |
|
| namespace は、要求されているアクションの namespace です。現在、namespace なしとすべての namespace の区別はありません。 |
|
| path は非リソース URL のパスです。 |
|
| resourse は既存のリソースタイプの 1 つです。 |
|
| Group は、インライン化されたときに 'groups' フィールドとの混同を回避するために、resourceAPIGroup としてシリアル化されたリソースの API グループです。 |
|
| Version は、インライン化されたときに TypeMeta.apiVersion および ObjectMeta.resourceVersion との混同を回避するために、resourceAPIVersion としてシリアル化されたリソースの API バージョンです。 |
|
| resourceName は、"取得" のために要求されているリソース、または "削除" のために削除されているリソースの名前です。 |
|
| verb は、get、list、watch、create、update、delete のいずれかです。 |
2.2. API エンドポイント
以下の API エンドポイントを利用できます。
/apis/authorization.openshift.io/v1/namespaces/{namespace}/localresourceaccessreviews
-
POST
: LocalResourceAccessReview を作成する
-
2.2.1. /apis/authorization.openshift.io/v1/namespaces/{namespace}/localresourceaccessreviews
パラメーター | 型 | 説明 |
---|---|---|
|
| これは、変更を永続化してはならないことを示します。dryRun ディレクティブが無効な場合や、認識されない場合はエラーの応答が返され、その要求に対する処理はこれ以上行われません。有効な値は All で、すべてのドライランステージが処理されます。 |
|
| fieldValidation は、不明なフィールドまたは重複したフィールドを含むリクエスト (POST/PUT/PATCH) 内のオブジェクトを処理する方法をサーバーに指示します。有効な値は Ignore です。オブジェクトからサイレントにドロップされた不明なフィールドを無視し、デコーダーが検出した最後の重複フィールドを除くすべてを無視します。これは、v1.23 より前のデフォルトの動作です。- Warn: オブジェクトから削除された不明なフィールドごと、および検出された重複フィールドごとに、標準の警告応答ヘッダーを介して警告が送信されます。他にエラーがなければ要求は成功し、重複するフィールドの最後のものだけを保持します。これは v1.23 以降のデフォルトです。- Strict: 不明なフィールドがオブジェクトから削除される場合、または重複フィールドが存在する場合は、リクエストが BadRequest エラーで失敗します。サーバーから返されるエラーには、検出されたすべての不明な重複フィールドが含まれます。 |
- HTTP メソッド
-
POST
- 説明
- LocalResourceAccessReview を作成する
パラメーター | 型 | 説明 |
---|---|---|
|
HTTP コード | レスポンスのボディー |
---|---|
200 - OK | |
201 - Created | |
202 - Accepted | |
401 - Unauthorized | 空白 |
第3章 LocalSubjectAccessReview [authorization.openshift.io/v1]
- 説明
LocalSubjectAccessReview は、ユーザーまたはグループが特定の namespace でアクションを実行できるかどうかに関する情報を要求するオブジェクトです。
互換性レベル 1: メジャーリリース内で最低 12 か月または 3 つのマイナーリリース (どちらか長い方) の間安定しています。
- 型
-
object
- 必須
-
namespace
-
verb
-
resourceAPIGroup
-
resourceAPIVersion
-
resource
-
resourceName
-
path
-
isNonResourceURL
-
user
-
groups
-
scopes
-
3.1. 仕様
プロパティー | 型 | 説明 |
---|---|---|
|
| apiVersion はオブジェクトのこの表現のバージョンスキーマを定義します。サーバーは認識されたスキーマを最新の内部値に変換し、認識されない値は拒否することがあります。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources を参照してください。 |
| content は、作成および更新のリクエストの実際のコンテンツです。 | |
|
| groups はオプションです。groups は、ユーザーが属するグループのリストです。 |
|
| isNonResourceURL は、これが非リソース URL (リソース階層外) の要求である場合に true になります。 |
|
| kind はこのオブジェクトが表す REST リソースを表す文字列の値です。サーバーはクライアントが要求を送信するエンドポイントからこれを推測できる場合があります。これは更新できません。CamelCase を使用します。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds を参照してください。 |
|
| namespace は、要求されているアクションの namespace です。現在、namespace なしとすべての namespace の区別はありません。 |
|
| path は非リソース URL のパスです。 |
|
| resourse は既存のリソースタイプの 1 つです。 |
|
| Group は、インライン化されたときに 'groups' フィールドとの混同を回避するために、resourceAPIGroup としてシリアル化されたリソースの API グループです。 |
|
| Version は、インライン化されたときに TypeMeta.apiVersion および ObjectMeta.resourceVersion との混同を回避するために、resourceAPIVersion としてシリアル化されたリソースの API バージョンです。 |
|
| resourceName は、"取得" のために要求されているリソース、または "削除" のために削除されているリソースの名前です。 |
|
| scopes は評価に使用します。empty とは、"ユーザー/グループのスコープ外の (完全な) 権限を使用" することを意味します。自己 SAR の場合、Nil は、"このリクエストでスコープを使用" することを意味します。通常の SAR の場合、Nil は、empty と同じ意味です。 |
|
| user はオプションです。user と groups の両方が empty の場合は、現在認証されているユーザーが使用されます。 |
|
| verb は、get、list、watch、create、update、delete のいずれかです。 |
3.2. API エンドポイント
以下の API エンドポイントを利用できます。
/apis/authorization.openshift.io/v1/namespaces/{namespace}/localsubjectaccessreviews
-
POST
: LocalSubjectAccessReview を作成する
-
3.2.1. /apis/authorization.openshift.io/v1/namespaces/{namespace}/localsubjectaccessreviews
パラメーター | 型 | 説明 |
---|---|---|
|
| これは、変更を永続化してはならないことを示します。dryRun ディレクティブが無効な場合や、認識されない場合はエラーの応答が返され、その要求に対する処理はこれ以上行われません。有効な値は All で、すべてのドライランステージが処理されます。 |
|
| fieldValidation は、不明なフィールドまたは重複したフィールドを含むリクエスト (POST/PUT/PATCH) 内のオブジェクトを処理する方法をサーバーに指示します。有効な値は Ignore です。オブジェクトからサイレントにドロップされた不明なフィールドを無視し、デコーダーが検出した最後の重複フィールドを除くすべてを無視します。これは、v1.23 より前のデフォルトの動作です。- Warn: オブジェクトから削除された不明なフィールドごと、および検出された重複フィールドごとに、標準の警告応答ヘッダーを介して警告が送信されます。他にエラーがなければ要求は成功し、重複するフィールドの最後のものだけを保持します。これは v1.23 以降のデフォルトです。- Strict: 不明なフィールドがオブジェクトから削除される場合、または重複フィールドが存在する場合は、リクエストが BadRequest エラーで失敗します。サーバーから返されるエラーには、検出されたすべての不明な重複フィールドが含まれます。 |
- HTTP メソッド
-
POST
- 説明
- LocalSubjectAccessReview を作成する
パラメーター | 型 | 説明 |
---|---|---|
|
HTTP コード | レスポンスのボディー |
---|---|
200 - OK | |
201 - Created | |
202 - Accepted | |
401 - Unauthorized | 空白 |
第4章 ResourceAccessReview [authorization.openshift.io/v1]
- 説明
ResourceAccessReview は、仕様により指定されたアクションの実行を許可されているユーザーおよびグループのリストを要求する手段です。
互換性レベル 1: メジャーリリース内で最低 12 か月または 3 つのマイナーリリース (どちらか長い方) の間安定しています。
- 型
-
object
- 必須
-
namespace
-
verb
-
resourceAPIGroup
-
resourceAPIVersion
-
resource
-
resourceName
-
path
-
isNonResourceURL
-
4.1. 仕様
プロパティー | 型 | 説明 |
---|---|---|
|
| apiVersion はオブジェクトのこの表現のバージョンスキーマを定義します。サーバーは認識されたスキーマを最新の内部値に変換し、認識されない値は拒否することがあります。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources を参照してください。 |
| content は、作成および更新のリクエストの実際のコンテンツです。 | |
|
| isNonResourceURL は、これが非リソース URL (リソース階層外) の要求である場合に true になります。 |
|
| kind はこのオブジェクトが表す REST リソースを表す文字列の値です。サーバーはクライアントが要求を送信するエンドポイントからこれを推測できる場合があります。これは更新できません。CamelCase を使用します。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds を参照してください。 |
|
| namespace は、要求されているアクションの namespace です。現在、namespace なしとすべての namespace の区別はありません。 |
|
| path は非リソース URL のパスです。 |
|
| resourse は既存のリソースタイプの 1 つです。 |
|
| Group は、インライン化されたときに 'groups' フィールドとの混同を回避するために、resourceAPIGroup としてシリアル化されたリソースの API グループです。 |
|
| Version は、インライン化されたときに TypeMeta.apiVersion および ObjectMeta.resourceVersion との混同を回避するために、resourceAPIVersion としてシリアル化されたリソースの API バージョンです。 |
|
| resourceName は、"取得" のために要求されているリソース、または "削除" のために削除されているリソースの名前です。 |
|
| verb は、get、list、watch、create、update、delete のいずれかです。 |
4.2. API エンドポイント
以下の API エンドポイントを利用できます。
/apis/authorization.openshift.io/v1/resourceaccessreviews
-
POST
: ResourceAccessReview を作成する
-
4.2.1. /apis/authorization.openshift.io/v1/resourceaccessreviews
パラメーター | 型 | 説明 |
---|---|---|
|
| これは、変更を永続化してはならないことを示します。dryRun ディレクティブが無効な場合や、認識されない場合はエラーの応答が返され、その要求に対する処理はこれ以上行われません。有効な値は All で、すべてのドライランステージが処理されます。 |
|
| fieldValidation は、不明なフィールドまたは重複したフィールドを含むリクエスト (POST/PUT/PATCH) 内のオブジェクトを処理する方法をサーバーに指示します。有効な値は Ignore です。オブジェクトからサイレントにドロップされた不明なフィールドを無視し、デコーダーが検出した最後の重複フィールドを除くすべてを無視します。これは、v1.23 より前のデフォルトの動作です。- Warn: オブジェクトから削除された不明なフィールドごと、および検出された重複フィールドごとに、標準の警告応答ヘッダーを介して警告が送信されます。他にエラーがなければ要求は成功し、重複するフィールドの最後のものだけを保持します。これは v1.23 以降のデフォルトです。- Strict: 不明なフィールドがオブジェクトから削除される場合、または重複フィールドが存在する場合は、リクエストが BadRequest エラーで失敗します。サーバーから返されるエラーには、検出されたすべての不明な重複フィールドが含まれます。 |
- HTTP メソッド
-
POST
- 説明
- ResourceAccessReview を作成する
パラメーター | 型 | 説明 |
---|---|---|
|
|
HTTP コード | レスポンスのボディー |
---|---|
200 - OK |
|
201 - Created |
|
202 - Accepted |
|
401 - Unauthorized | 空白 |
第5章 SelfSubjectRulesReview [authorization.openshift.io/v1]
- 説明
SelfSubjectRulesReview は、namespace で実行可能なアクションを判別するために作成できるリソースです。
互換性レベル 1: メジャーリリース内で最低 12 か月または 3 つのマイナーリリース (どちらか長い方) の間安定しています。
- 型
-
object
- 必須
-
spec
-
5.1. 仕様
プロパティー | 型 | 説明 |
---|---|---|
|
| apiVersion はオブジェクトのこの表現のバージョンスキーマを定義します。サーバーは認識されたスキーマを最新の内部値に変換し、認識されない値は拒否することがあります。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources を参照してください。 |
|
| kind はこのオブジェクトが表す REST リソースを表す文字列の値です。サーバーはクライアントが要求を送信するエンドポイントからこれを推測できる場合があります。これは更新できません。CamelCase を使用します。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds を参照してください。 |
|
| SelfSubjectRulesReviewSpec は、チェックの実行方法に関する情報を追加します。 |
|
| SubjectRulesReviewStatus には、ルールチェックの結果が含まれています。 |
5.1.1. .spec
- 説明
- SelfSubjectRulesReviewSpec は、チェックの実行方法に関する情報を追加します。
- 型
-
object
- 必須
-
scopes
-
プロパティー | 型 | 説明 |
---|---|---|
|
| scopes は評価に使用します。empty とは、"ユーザー/グループのスコープ外の (完全な) 権限を使用" することを意味します。Nil は、"このリクエストでスコープを使用" することを意味します。 |
5.1.2. .status
- 説明
- SubjectRulesReviewStatus には、ルールチェックの結果が含まれています。
- 型
-
object
- 必須
-
rules
-
プロパティー | 型 | 説明 |
---|---|---|
|
| evaluationError は、ルールと組み合わせて表示される場合があります。これは、評価中にエラーが発生し、追加のルールを設定できなかった可能性があることを意味します。 |
|
| rules は、サブジェクトに許可されているルール (特定の並べ替えなし) のリストです。 |
|
| PolicyRule は、ポリシールールを説明する情報を保持しますが、ルールが適用されるユーザーやルールが適用される namespace に関する情報は含まれません。 |
5.1.3. .status.rules
- 説明
- rules は、サブジェクトに許可されているルール (特定の並べ替えなし) のリストです。
- 型
-
array
5.1.4. .status.rules[]
- 説明
- PolicyRule は、ポリシールールを説明する情報を保持しますが、ルールが適用されるユーザーやルールが適用される namespace に関する情報は含まれません。
- 型
-
object
- 必須
-
verbs
-
resources
-
プロパティー | 型 | 説明 |
---|---|---|
|
| apiGroups は、リソースを含む APIGroup の名前です。このフィールドが空の場合は、kubernetes と origin API グループの両方が想定されます。つまり、kubernetes またはオリジン API グループのいずれかで列挙されたリソースのいずれかに対してアクションがリクエストされると、そのリクエストは許可されます。 |
| attributeRestrictions は、Authorizer/AuthorizationAttributeBuilder ペアがサポートするものに応じて異なります。authorizer が AttributeRestrictions の処理方法を認識しないと、Authorizer がエラーを報告します。 | |
|
| nonResourceURLsSlice は、ユーザーがアクセスできる必要のある部分的な URL のセットです。* は許可されますが、パスの完全な最終ステップとしてのみこの名前は内部タイプとは意図的に異なります。これにより、DefaultConvert が適切に機能し、順序が異なる場合があります。 |
|
| resourceNames は、ルールが適用される名前のオプションのホワイトリストです。空のセットは、すべてが許可されていることを意味します。 |
|
| resources は、このルールが適用されるリソースのリストです。resourceAll は、すべてのリソースを表します。 |
|
| verbs は、このルールに含まれるすべての ResourceKinds と AttributeRestrictions に適用される動詞のリストです。verbAll はすべての種類を表します。 |
5.2. API エンドポイント
以下の API エンドポイントを利用できます。
/apis/authorization.openshift.io/v1/namespaces/{namespace}/selfsubjectrulesreviews
-
POST
: SelfSubjectRulesReview を作成する
-
5.2.1. /apis/authorization.openshift.io/v1/namespaces/{namespace}/selfsubjectrulesreviews
パラメーター | 型 | 説明 |
---|---|---|
|
| これは、変更を永続化してはならないことを示します。dryRun ディレクティブが無効な場合や、認識されない場合はエラーの応答が返され、その要求に対する処理はこれ以上行われません。有効な値は All で、すべてのドライランステージが処理されます。 |
|
| fieldValidation は、不明なフィールドまたは重複したフィールドを含むリクエスト (POST/PUT/PATCH) 内のオブジェクトを処理する方法をサーバーに指示します。有効な値は Ignore です。オブジェクトからサイレントにドロップされた不明なフィールドを無視し、デコーダーが検出した最後の重複フィールドを除くすべてを無視します。これは、v1.23 より前のデフォルトの動作です。- Warn: オブジェクトから削除された不明なフィールドごと、および検出された重複フィールドごとに、標準の警告応答ヘッダーを介して警告が送信されます。他にエラーがなければ要求は成功し、重複するフィールドの最後のものだけを保持します。これは v1.23 以降のデフォルトです。- Strict: 不明なフィールドがオブジェクトから削除される場合、または重複フィールドが存在する場合は、リクエストが BadRequest エラーで失敗します。サーバーから返されるエラーには、検出されたすべての不明な重複フィールドが含まれます。 |
- HTTP メソッド
-
POST
- 説明
- SelfSubjectRulesReview を作成する
パラメーター | 型 | 説明 |
---|---|---|
|
HTTP コード | レスポンスのボディー |
---|---|
200 - OK | |
201 - Created | |
202 - Accepted | |
401 - Unauthorized | 空白 |
第6章 SubjectAccessReview [authorization.openshift.io/v1]
- 説明
SubjectAccessReview は、ユーザーまたはグループがアクションを実行できるかどうかに関する情報を要求するオブジェクトです。
互換性レベル 1: メジャーリリース内で最低 12 か月または 3 つのマイナーリリース (どちらか長い方) の間安定しています。
- 型
-
object
- 必須
-
namespace
-
verb
-
resourceAPIGroup
-
resourceAPIVersion
-
resource
-
resourceName
-
path
-
isNonResourceURL
-
user
-
groups
-
scopes
-
6.1. 仕様
プロパティー | 型 | 説明 |
---|---|---|
|
| apiVersion はオブジェクトのこの表現のバージョンスキーマを定義します。サーバーは認識されたスキーマを最新の内部値に変換し、認識されない値は拒否することがあります。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources を参照してください。 |
| content は、作成および更新のリクエストの実際のコンテンツです。 | |
|
| GroupsSlice はオプションです。groups は、ユーザーが属するグループのリストです。 |
|
| isNonResourceURL は、これが非リソース URL (リソース階層外) の要求である場合に true になります。 |
|
| kind はこのオブジェクトが表す REST リソースを表す文字列の値です。サーバーはクライアントが要求を送信するエンドポイントからこれを推測できる場合があります。これは更新できません。CamelCase を使用します。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds を参照してください。 |
|
| namespace は、要求されているアクションの namespace です。現在、namespace なしとすべての namespace の区別はありません。 |
|
| path は非リソース URL のパスです。 |
|
| resourse は既存のリソースタイプの 1 つです。 |
|
| Group は、インライン化されたときに 'groups' フィールドとの混同を回避するために、resourceAPIGroup としてシリアル化されたリソースの API グループです。 |
|
| Version は、インライン化されたときに TypeMeta.apiVersion および ObjectMeta.resourceVersion との混同を回避するために、resourceAPIVersion としてシリアル化されたリソースの API バージョンです。 |
|
| resourceName は、"取得" のために要求されているリソース、または "削除" のために削除されているリソースの名前です。 |
|
| scopes は評価に使用します。empty とは、"ユーザー/グループのスコープ外の (完全な) 権限を使用" することを意味します。自己 SAR の場合、Nil は、"このリクエストでスコープを使用" することを意味します。通常の SAR の場合、Nil は、empty と同じ意味です。 |
|
| user はオプションです。user と groups の両方が empty の場合は、現在認証されているユーザーが使用されます。 |
|
| verb は、get、list、watch、create、update、delete のいずれかです。 |
6.2. API エンドポイント
以下の API エンドポイントを利用できます。
/apis/authorization.openshift.io/v1/subjectaccessreviews
-
POST
: SubjectAccessReview を作成する
-
6.2.1. /apis/authorization.openshift.io/v1/subjectaccessreviews
パラメーター | 型 | 説明 |
---|---|---|
|
| これは、変更を永続化してはならないことを示します。dryRun ディレクティブが無効な場合や、認識されない場合はエラーの応答が返され、その要求に対する処理はこれ以上行われません。有効な値は All で、すべてのドライランステージが処理されます。 |
|
| fieldValidation は、不明なフィールドまたは重複したフィールドを含むリクエスト (POST/PUT/PATCH) 内のオブジェクトを処理する方法をサーバーに指示します。有効な値は Ignore です。オブジェクトからサイレントにドロップされた不明なフィールドを無視し、デコーダーが検出した最後の重複フィールドを除くすべてを無視します。これは、v1.23 より前のデフォルトの動作です。- Warn: オブジェクトから削除された不明なフィールドごと、および検出された重複フィールドごとに、標準の警告応答ヘッダーを介して警告が送信されます。他にエラーがなければ要求は成功し、重複するフィールドの最後のものだけを保持します。これは v1.23 以降のデフォルトです。- Strict: 不明なフィールドがオブジェクトから削除される場合、または重複フィールドが存在する場合は、リクエストが BadRequest エラーで失敗します。サーバーから返されるエラーには、検出されたすべての不明な重複フィールドが含まれます。 |
- HTTP メソッド
-
POST
- 説明
- SubjectAccessReview を作成する
パラメーター | 型 | 説明 |
---|---|---|
|
|
HTTP コード | レスポンスのボディー |
---|---|
200 - OK |
|
201 - Created |
|
202 - Accepted |
|
401 - Unauthorized | 空白 |
第7章 SubjectRulesReview [authorization.openshift.io/v1]
- 説明
SubjectRulesReview は、別のユーザーが namespace で実行可能なアクションを判別するために作成できるリソースです。
互換性レベル 1: メジャーリリース内で最低 12 か月または 3 つのマイナーリリース (どちらか長い方) の間安定しています。
- 型
-
object
- 必須
-
spec
-
7.1. 仕様
プロパティー | 型 | 説明 |
---|---|---|
|
| apiVersion はオブジェクトのこの表現のバージョンスキーマを定義します。サーバーは認識されたスキーマを最新の内部値に変換し、認識されない値は拒否することがあります。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources を参照してください。 |
|
| kind はこのオブジェクトが表す REST リソースを表す文字列の値です。サーバーはクライアントが要求を送信するエンドポイントからこれを推測できる場合があります。これは更新できません。CamelCase を使用します。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds を参照してください。 |
|
| SubjectRulesReviewSpec は、チェックの実行方法に関する情報を追加します。 |
|
| SubjectRulesReviewStatus には、ルールチェックの結果が含まれています。 |
7.1.1. .spec
- 説明
- SubjectRulesReviewSpec は、チェックの実行方法に関する情報を追加します。
- 型
-
object
- 必須
-
user
-
groups
-
scopes
-
プロパティー | 型 | 説明 |
---|---|---|
|
| groups はオプションです。groups は、ユーザーが属するグループのリストです。user または groups を少なくとも 1 つ指定する必要があります。 |
|
| scopes は評価に使用します。empty とは、"ユーザー/グループのスコープ外の (完全な) 権限を使用" することを意味します。 |
|
| user はオプションです。user または groups を少なくとも 1 つ指定する必要があります。 |
7.1.2. .status
- 説明
- SubjectRulesReviewStatus には、ルールチェックの結果が含まれています。
- 型
-
object
- 必須
-
rules
-
プロパティー | 型 | 説明 |
---|---|---|
|
| evaluationError は、ルールと組み合わせて表示される場合があります。これは、評価中にエラーが発生し、追加のルールを設定できなかった可能性があることを意味します。 |
|
| rules は、サブジェクトに許可されているルール (特定の並べ替えなし) のリストです。 |
|
| PolicyRule は、ポリシールールを説明する情報を保持しますが、ルールが適用されるユーザーやルールが適用される namespace に関する情報は含まれません。 |
7.1.3. .status.rules
- 説明
- rules は、サブジェクトに許可されているルール (特定の並べ替えなし) のリストです。
- 型
-
array
7.1.4. .status.rules[]
- 説明
- PolicyRule は、ポリシールールを説明する情報を保持しますが、ルールが適用されるユーザーやルールが適用される namespace に関する情報は含まれません。
- 型
-
object
- 必須
-
verbs
-
resources
-
プロパティー | 型 | 説明 |
---|---|---|
|
| apiGroups は、リソースを含む APIGroup の名前です。このフィールドが空の場合は、kubernetes と origin API グループの両方が想定されます。つまり、kubernetes またはオリジン API グループのいずれかで列挙されたリソースのいずれかに対してアクションがリクエストされると、そのリクエストは許可されます。 |
| attributeRestrictions は、Authorizer/AuthorizationAttributeBuilder ペアがサポートするものに応じて異なります。authorizer が AttributeRestrictions の処理方法を認識しないと、Authorizer がエラーを報告します。 | |
|
| nonResourceURLsSlice は、ユーザーがアクセスできる必要のある部分的な URL のセットです。* は許可されますが、パスの完全な最終ステップとしてのみこの名前は内部タイプとは意図的に異なります。これにより、DefaultConvert が適切に機能し、順序が異なる場合があります。 |
|
| resourceNames は、ルールが適用される名前のオプションのホワイトリストです。空のセットは、すべてが許可されていることを意味します。 |
|
| resources は、このルールが適用されるリソースのリストです。resourceAll は、すべてのリソースを表します。 |
|
| verbs は、このルールに含まれるすべての ResourceKinds と AttributeRestrictions に適用される動詞のリストです。verbAll はすべての種類を表します。 |
7.2. API エンドポイント
以下の API エンドポイントを利用できます。
/apis/authorization.openshift.io/v1/namespaces/{namespace}/subjectrulesreviews
-
POST
: SubjectRulesReview を作成する
-
7.2.1. /apis/authorization.openshift.io/v1/namespaces/{namespace}/subjectrulesreviews
パラメーター | 型 | 説明 |
---|---|---|
|
| これは、変更を永続化してはならないことを示します。dryRun ディレクティブが無効な場合や、認識されない場合はエラーの応答が返され、その要求に対する処理はこれ以上行われません。有効な値は All で、すべてのドライランステージが処理されます。 |
|
| fieldValidation は、不明なフィールドまたは重複したフィールドを含むリクエスト (POST/PUT/PATCH) 内のオブジェクトを処理する方法をサーバーに指示します。有効な値は Ignore です。オブジェクトからサイレントにドロップされた不明なフィールドを無視し、デコーダーが検出した最後の重複フィールドを除くすべてを無視します。これは、v1.23 より前のデフォルトの動作です。- Warn: オブジェクトから削除された不明なフィールドごと、および検出された重複フィールドごとに、標準の警告応答ヘッダーを介して警告が送信されます。他にエラーがなければ要求は成功し、重複するフィールドの最後のものだけを保持します。これは v1.23 以降のデフォルトです。- Strict: 不明なフィールドがオブジェクトから削除される場合、または重複フィールドが存在する場合は、リクエストが BadRequest エラーで失敗します。サーバーから返されるエラーには、検出されたすべての不明な重複フィールドが含まれます。 |
- HTTP メソッド
-
POST
- 説明
- SubjectRulesReview を作成する
パラメーター | 型 | 説明 |
---|---|---|
|
|
HTTP コード | レスポンスのボディー |
---|---|
200 - OK |
|
201 - Created |
|
202 - Accepted |
|
401 - Unauthorized | 空白 |
第8章 SelfSubjectReview [authentication.k8s.io/v1]
- 説明
- SelfSubjectReview には、このリクエストを行ったユーザーに関する kube-apiserver が保持するユーザー情報が含まれています。偽装を使用すると、ユーザーは偽装されているユーザーのユーザー情報を受け取ります。偽装またはリクエストヘッダー認証が使用されていると、追加のキーの大文字と小文字は無視され、小文字で返されます。
- 型
-
object
8.1. 仕様
プロパティー | 型 | 説明 |
---|---|---|
|
| apiVersion はオブジェクトのこの表現のバージョンスキーマを定義します。サーバーは認識されたスキーマを最新の内部値に変換し、認識されない値は拒否することがあります。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources を参照してください。 |
|
| kind はこのオブジェクトが表す REST リソースを表す文字列の値です。サーバーはクライアントが要求を送信するエンドポイントからこれを推測できる場合があります。これは更新できません。CamelCase を使用します。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds を参照してください。 |
| 標準オブジェクトのメタデータ。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata を参照してください。 | |
|
| SelfSubjectReviewStatus は kube-apiserver により入力され、ユーザーに送り返されます。 |
8.1.1. .status
- 説明
- SelfSubjectReviewStatus は kube-apiserver により入力され、ユーザーに送り返されます。
- 型
-
object
プロパティー | 型 | 説明 |
---|---|---|
|
| userInfo は、user.Info インターフェイスを実装するのに必要なユーザーに関する情報を保持します。 |
8.1.2. .status.userInfo
- 説明
- userInfo は、user.Info インターフェイスを実装するのに必要なユーザーに関する情報を保持します。
- 型
-
object
プロパティー | 型 | 説明 |
---|---|---|
|
| オーセンティケーターから提供される追加情報。 |
|
| |
|
| このユーザーが参加しているグループの名前。 |
|
| 時間の経過とともにこのユーザーを識別する一意の値。このユーザーが削除され、同じ名前の別のユーザーが追加されると、UID は異なります。 |
|
| すべてのアクティブユーザーの中でこのユーザーを一意に識別する名前。 |
8.1.3. .status.userInfo.extra
- 説明
- オーセンティケーターから提供される追加情報。
- 型
-
object
8.2. API エンドポイント
以下の API エンドポイントを利用できます。
/apis/authentication.k8s.io/v1/selfsubjectreviews
-
POST
: SelfSubjectReview を作成する
-
8.2.1. /apis/authentication.k8s.io/v1/selfsubjectreviews
パラメーター | 型 | 説明 |
---|---|---|
|
| これは、変更を永続化してはならないことを示します。dryRun ディレクティブが無効な場合や、認識されない場合はエラーの応答が返され、その要求に対する処理はこれ以上行われません。有効な値は All で、すべてのドライランステージが処理されます。 |
|
| fieldValidation は、不明なフィールドまたは重複したフィールドを含むリクエスト (POST/PUT/PATCH) 内のオブジェクトを処理する方法をサーバーに指示します。有効な値は Ignore です。オブジェクトからサイレントにドロップされた不明なフィールドを無視し、デコーダーが検出した最後の重複フィールドを除くすべてを無視します。これは、v1.23 より前のデフォルトの動作です。- Warn: オブジェクトから削除された不明なフィールドごと、および検出された重複フィールドごとに、標準の警告応答ヘッダーを介して警告が送信されます。他にエラーがなければ要求は成功し、重複するフィールドの最後のものだけを保持します。これは v1.23 以降のデフォルトです。- Strict: 不明なフィールドがオブジェクトから削除される場合、または重複フィールドが存在する場合は、リクエストが BadRequest エラーで失敗します。サーバーから返されるエラーには、検出されたすべての不明な重複フィールドが含まれます。 |
- HTTP メソッド
-
POST
- 説明
- SelfSubjectReview を作成する
パラメーター | 型 | 説明 |
---|---|---|
|
|
HTTP コード | レスポンスのボディー |
---|---|
200 - OK |
|
201 - Created |
|
202 - Accepted |
|
401 - Unauthorized | 空白 |
第9章 TokenRequest [authentication.k8s.io/v1]
- 説明
- TokenRequest は、指定のサービスアカウントのトークンを要求します。
- 型
-
object
- 必須
-
spec
-
9.1. 仕様
プロパティー | 型 | 説明 |
---|---|---|
|
| apiVersion はオブジェクトのこの表現のバージョンスキーマを定義します。サーバーは認識されたスキーマを最新の内部値に変換し、認識されない値は拒否することがあります。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources を参照してください。 |
|
| kind はこのオブジェクトが表す REST リソースを表す文字列の値です。サーバーはクライアントが要求を送信するエンドポイントからこれを推測できる場合があります。これは更新できません。CamelCase を使用します。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds を参照してください。 |
| 標準オブジェクトのメタデータ。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata を参照してください。 | |
|
| TokenRequestSpec には、トークンリクエストのクライアント提供パラメーターが含まれています。 |
|
| TokenRequestStatus は、トークンリクエストの結果です。 |
9.1.1. .spec
- 説明
- TokenRequestSpec には、トークンリクエストのクライアント提供パラメーターが含まれています。
- 型
-
object
- 必須
-
audiences
-
プロパティー | 型 | 説明 |
---|---|---|
|
| audiences は、トークンのオーディエンスです。トークンの受信者は、トークンのオーディエンスリストにある識別子を使用して自身を識別する必要があり、そうでない場合はトークンを拒否する必要があります。複数のオーディエンスに対して発行されたトークンは、リストされているオーディエンスのいずれかに対して認証するために使用できますが、ターゲットオーディエンス間の高度な信頼を意味します。 |
|
| boundObjectReference は、トークンがバインドされているオブジェクトへの参照です。 |
|
| expirationSeconds は、リクエストされた要求の有効期間です。トークン発行者は、有効期間が異なるトークンを返す可能性があるため、クライアントは応答の 'expiration' フィールドを確認する必要があります。 |
9.1.2. .spec.boundObjectRef
- 説明
- boundObjectReference は、トークンがバインドされているオブジェクトへの参照です。
- 型
-
object
プロパティー | 型 | 説明 |
---|---|---|
|
| 参照先の API バージョン。 |
|
| 参照先の種類。有効な種類は 'Pod' と 'Secret' です。 |
|
| 参照先の名前。 |
|
| 参照先の UID。 |
9.1.3. .status
- 説明
- TokenRequestStatus は、トークンリクエストの結果です。
- 型
-
object
- 必須
-
token
-
expirationTimestamp
-
プロパティー | 型 | 説明 |
---|---|---|
| expirationTimestamp は、返されたトークンの有効期限です。 | |
|
| token は不透明なベアラトークンです。 |
9.2. API エンドポイント
以下の API エンドポイントを利用できます。
/api/v1/namespaces/{namespace}/serviceaccounts/{name}/token
-
POST
: ServiceAccount のトークンを作成する
-
9.2.1. /api/v1/namespaces/{namespace}/serviceaccounts/{name}/token
パラメーター | 型 | 説明 |
---|---|---|
|
| TokenRequest の名前 |
パラメーター | 型 | 説明 |
---|---|---|
|
| これは、変更を永続化してはならないことを示します。dryRun ディレクティブが無効な場合や、認識されない場合はエラーの応答が返され、その要求に対する処理はこれ以上行われません。有効な値は All で、すべてのドライランステージが処理されます。 |
|
| fieldValidation は、不明なフィールドまたは重複したフィールドを含むリクエスト (POST/PUT/PATCH) 内のオブジェクトを処理する方法をサーバーに指示します。有効な値は Ignore です。オブジェクトからサイレントにドロップされた不明なフィールドを無視し、デコーダーが検出した最後の重複フィールドを除くすべてを無視します。これは、v1.23 より前のデフォルトの動作です。- Warn: オブジェクトから削除された不明なフィールドごと、および検出された重複フィールドごとに、標準の警告応答ヘッダーを介して警告が送信されます。他にエラーがなければ要求は成功し、重複するフィールドの最後のものだけを保持します。これは v1.23 以降のデフォルトです。- Strict: 不明なフィールドがオブジェクトから削除される場合、または重複フィールドが存在する場合は、リクエストが BadRequest エラーで失敗します。サーバーから返されるエラーには、検出されたすべての不明な重複フィールドが含まれます。 |
- HTTP メソッド
-
POST
- 説明
- ServiceAccount のトークンを作成する
パラメーター | 型 | 説明 |
---|---|---|
|
|
HTTP コード | レスポンスのボディー |
---|---|
200 - OK |
|
201 - Created |
|
202 - Accepted |
|
401 - Unauthorized | 空白 |
第10章 TokenReview [authentication.k8s.io/v1]
- 説明
- TokenReview は、既知のユーザーに対してトークンを認証します。注: TokenReview 要求は、kube-apiserver の webhook トークンオーセンティケータープラグインによりキャッシュされる場合があります。
- 型
-
object
- 必須
-
spec
-
10.1. 仕様
プロパティー | 型 | 説明 |
---|---|---|
|
| apiVersion はオブジェクトのこの表現のバージョンスキーマを定義します。サーバーは認識されたスキーマを最新の内部値に変換し、認識されない値は拒否することがあります。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources を参照してください。 |
|
| kind はこのオブジェクトが表す REST リソースを表す文字列の値です。サーバーはクライアントが要求を送信するエンドポイントからこれを推測できる場合があります。これは更新できません。CamelCase を使用します。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds を参照してください。 |
| 標準オブジェクトのメタデータ。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata を参照してください。 | |
|
| TokenReviewSpec は、トークン認証リクエストの説明です。 |
|
| TokenReviewStatus は、トークン認証リクエストの結果です。 |
10.1.1. .spec
- 説明
- TokenReviewSpec は、トークン認証リクエストの説明です。
- 型
-
object
プロパティー | 型 | 説明 |
---|---|---|
|
| audiences は、トークンとともに提示されたリソースサーバーが識別する識別子のリストです。オーディエンス対応のトークンオーセンティケーターは、トークンがこのリストの少なくとも 1 つのオーディエンスを対象としていることを確認します。audiences が提供されていないと、オーディエンスはデフォルトで Kubernetes apiserver のオーディエンスになります。 |
|
| token は不透明なベアラトークンです。 |
10.1.2. .status
- 説明
- TokenReviewStatus は、トークン認証リクエストの結果です。
- 型
-
object
プロパティー | 型 | 説明 |
---|---|---|
|
| audiences は、TokenReview とトークンの両方と互換性のあるオーセンティケーターによって選択されたオーディエンス識別子です。識別子は、TokenReviewSpec オーディエンスとトークンのオーディエンスの共通部分にある識別子です。spec.audiences フィールドを設定する TokenReview API のクライアントは、互換性のあるオーディエンス識別子が status.audiences フィールドに返されることを検証して、TokenReview サーバーがオーディエンスを認識していることを確認する必要があります。TokenReview が status.authenticated が "true" である空の status.audience フィールドを返す場合は、トークンが Kubernetes API サーバーのオーディエンスに対して有効です。 |
|
| authenticated は、トークンが既知のユーザーに関連付けられていることを示します。 |
|
| error は、トークンをチェックできなかったことを示します |
|
| userInfo は、user.Info インターフェイスを実装するのに必要なユーザーに関する情報を保持します。 |
10.1.3. .status.user
- 説明
- userInfo は、user.Info インターフェイスを実装するのに必要なユーザーに関する情報を保持します。
- 型
-
object
プロパティー | 型 | 説明 |
---|---|---|
|
| オーセンティケーターから提供される追加情報。 |
|
| |
|
| このユーザーが参加しているグループの名前。 |
|
| 時間の経過とともにこのユーザーを識別する一意の値。このユーザーが削除され、同じ名前の別のユーザーが追加されると、UID は異なります。 |
|
| すべてのアクティブユーザーの中でこのユーザーを一意に識別する名前。 |
10.1.4. .status.user.extra
- 説明
- オーセンティケーターから提供される追加情報。
- 型
-
object
10.2. API エンドポイント
以下の API エンドポイントを利用できます。
/apis/oauth.openshift.io/v1/tokenreviews
-
POST
: TokenReview を作成する
-
/apis/authentication.k8s.io/v1/tokenreviews
-
POST
: TokenReview を作成する
-
10.2.1. /apis/oauth.openshift.io/v1/tokenreviews
パラメーター | 型 | 説明 |
---|---|---|
|
| これは、変更を永続化してはならないことを示します。dryRun ディレクティブが無効な場合や、認識されない場合はエラーの応答が返され、その要求に対する処理はこれ以上行われません。有効な値は All で、すべてのドライランステージが処理されます。 |
|
| fieldValidation は、不明なフィールドまたは重複したフィールドを含むリクエスト (POST/PUT/PATCH) 内のオブジェクトを処理する方法をサーバーに指示します。有効な値は Ignore です。オブジェクトからサイレントにドロップされた不明なフィールドを無視し、デコーダーが検出した最後の重複フィールドを除くすべてを無視します。これは、v1.23 より前のデフォルトの動作です。- Warn: オブジェクトから削除された不明なフィールドごと、および検出された重複フィールドごとに、標準の警告応答ヘッダーを介して警告が送信されます。他にエラーがなければ要求は成功し、重複するフィールドの最後のものだけを保持します。これは v1.23 以降のデフォルトです。- Strict: 不明なフィールドがオブジェクトから削除される場合、または重複フィールドが存在する場合は、リクエストが BadRequest エラーで失敗します。サーバーから返されるエラーには、検出されたすべての不明な重複フィールドが含まれます。 |
- HTTP メソッド
-
POST
- 説明
- TokenReview を作成する
パラメーター | 型 | 説明 |
---|---|---|
|
|
HTTP コード | レスポンスのボディー |
---|---|
200 - OK |
|
201 - Created |
|
202 - Accepted |
|
401 - Unauthorized | 空白 |
10.2.2. /apis/authentication.k8s.io/v1/tokenreviews
パラメーター | 型 | 説明 |
---|---|---|
|
| これは、変更を永続化してはならないことを示します。dryRun ディレクティブが無効な場合や、認識されない場合はエラーの応答が返され、その要求に対する処理はこれ以上行われません。有効な値は All で、すべてのドライランステージが処理されます。 |
|
| fieldValidation は、不明なフィールドまたは重複したフィールドを含むリクエスト (POST/PUT/PATCH) 内のオブジェクトを処理する方法をサーバーに指示します。有効な値は Ignore です。オブジェクトからサイレントにドロップされた不明なフィールドを無視し、デコーダーが検出した最後の重複フィールドを除くすべてを無視します。これは、v1.23 より前のデフォルトの動作です。- Warn: オブジェクトから削除された不明なフィールドごと、および検出された重複フィールドごとに、標準の警告応答ヘッダーを介して警告が送信されます。他にエラーがなければ要求は成功し、重複するフィールドの最後のものだけを保持します。これは v1.23 以降のデフォルトです。- Strict: 不明なフィールドがオブジェクトから削除される場合、または重複フィールドが存在する場合は、リクエストが BadRequest エラーで失敗します。サーバーから返されるエラーには、検出されたすべての不明な重複フィールドが含まれます。 |
- HTTP メソッド
-
POST
- 説明
- TokenReview を作成する
パラメーター | 型 | 説明 |
---|---|---|
|
|
HTTP コード | レスポンスのボディー |
---|---|
200 - OK |
|
201 - Created |
|
202 - Accepted |
|
401 - Unauthorized | 空白 |
第11章 LocalSubjectAccessReview [authorization.k8s.io/v1]
- 説明
- LocalSubjectAccessReview は、ユーザーまたはグループが特定の namespace でアクションを実行できるかどうかを確認します。namespace のスコープ指定されたリソースがあると、パーミッションチェックを含む namespace のスコープ指定されたポリシーの付与がはるかに容易になります。
- 型
-
object
- 必須
-
spec
-
11.1. 仕様
プロパティー | 型 | 説明 |
---|---|---|
|
| apiVersion はオブジェクトのこの表現のバージョンスキーマを定義します。サーバーは認識されたスキーマを最新の内部値に変換し、認識されない値は拒否することがあります。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources を参照してください。 |
|
| kind はこのオブジェクトが表す REST リソースを表す文字列の値です。サーバーはクライアントが要求を送信するエンドポイントからこれを推測できる場合があります。これは更新できません。CamelCase を使用します。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds を参照してください。 |
| 標準のリストメタデータ。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata を参照してください。 | |
|
| SubjectAccessReviewSpec は、アクセス要求の説明です。ResourceAuthorizationAttributes と NonResourceAuthorizationAttributes のいずれかを設定する必要があります。 |
|
| SubjectAccessReviewStatus |
11.1.1. .spec
- 説明
- SubjectAccessReviewSpec は、アクセス要求の説明です。ResourceAuthorizationAttributes と NonResourceAuthorizationAttributes のいずれかを設定する必要があります。
- 型
-
object
プロパティー | 型 | 説明 |
---|---|---|
|
| extra は、オーセンティケーターの user.Info.GetExtra() メソッドに対応します。これは Authorizer に入力されるため、ここで反映する必要があります。 |
|
| |
|
| groups は、テストしているグループです。 |
|
| nonResourceAttributes には、Authorizer インターフェイスへの非リソース要求に使用できる許可属性が含まれています。 |
|
| resourceAttributes には、Authorizer インターフェイスへのリソース要求に使用できる許可属性が含まれています。 |
|
| 要求しているユーザーに関する UID 情報。 |
|
| user は、テストしているユーザーです。"user" を指定し、"groups" を指定しない場合は、「そのユーザーがどのグループにも所属していなかったらどうなるか」という意味になります。 |
11.1.2. .spec.extra
- 説明
- extra は、オーセンティケーターの user.Info.GetExtra() メソッドに対応します。これは Authorizer に入力されるため、ここで反映する必要があります。
- 型
-
object
11.1.3. .spec.nonResourceAttributes
- 説明
- nonResourceAttributes には、Authorizer インターフェイスへの非リソース要求に使用できる許可属性が含まれています。
- 型
-
object
プロパティー | 型 | 説明 |
---|---|---|
|
| path はリクエストの URL パスです。 |
|
| verb は標準の HTTP 動詞です。 |
11.1.4. .spec.resourceAttributes
- 説明
- resourceAttributes には、Authorizer インターフェイスへのリソース要求に使用できる許可属性が含まれています。
- 型
-
object
プロパティー | 型 | 説明 |
---|---|---|
|
| fieldSelectorAttributes はアクセスが制限されたフィールドを示します。Webhook の作成者は、次の点に注意してください。* rawSelector と requirements の両方が設定されていないことを確認する * requirements フィールドが設定されている場合はそれを考慮する * rawSelector フィールドが設定されている場合は解析または考慮を試みない。これは、別の CVE-2022-2880 を回避するためです (異なるシステム間でクエリーの解析方法を統一するのは望ましくありません)。詳細は、https://www.oxeye.io/resources/golang-parameter-smuggling-attack を参照してください。kube-apiserver の *SubjectAccessReview エンドポイントの場合: * rawSelector も requirements も空の場合は、リクエストが制限されません。* rawSelector が存在し、requirements が空の場合は、rawSelector が解析され、解析が成功するとこれは制限されます。* rawSelector が空で要件が存在する場合は、要件が優先される必要があります。* rawSelector が存在し、要件が存在する場合は、リクエストは無効です。 |
|
| group は、リソースの API グループです。"*" はすべてを意味します。 |
|
| labelSelectorAttributes は、アクセスが制限されたラベルを示します。Webhook の作成者は、次の点に注意してください。* rawSelector と requirements の両方が設定されていないことを確認する * requirements フィールドが設定されている場合はそれを考慮する * rawSelector フィールドが設定されている場合は解析または考慮を試みない。これは、別の CVE-2022-2880 を回避するためです (異なるシステム間でクエリーの解析方法を統一するのは望ましくありません)。詳細は、https://www.oxeye.io/resources/golang-parameter-smuggling-attack を参照してください。kube-apiserver の *SubjectAccessReview エンドポイントの場合: * rawSelector も requirements も空の場合は、リクエストが制限されません。* rawSelector が存在し、requirements が空の場合は、rawSelector が解析され、解析が成功するとこれは制限されます。* rawSelector が空で要件が存在する場合は、要件が優先される必要があります。* rawSelector が存在し、要件が存在する場合は、リクエストは無効です。 |
|
| name は、"取得" のために要求されているリソース、または "削除" のために削除されているリソースの名前です。"" (空) はすべてを意味します。 |
|
| namespace は、要求されているアクションの namespace です。現在、namespace なしとすべての namespace の区別はありません。""(空) は LocalSubjectAccessReviews のデフォルトです。""(空) はクラスタースコープのリソースでは空です。""(空) は SubjectAccessReview または SelfSubjectAccessReview からの namespace スコープのリソースの "すべて" を意味します。 |
|
| resource は、既存のリソースタイプの 1 つです。"*" はすべてを意味します。 |
|
| subresource は、既存のリソースタイプの 1 つです。"" は何もないことを意味します。 |
|
| verb は、get、list、watch、create、update、delete、proxy などの kubernetes リソース API 動詞です。"*" はすべてを意味します。 |
|
| version は、リソースの API バージョンです。"*" はすべてを意味します。 |
11.1.5. .spec.resourceAttributes.fieldSelector
- 説明
- fieldSelectorAttributes はアクセスが制限されたフィールドを示します。Webhook の作成者は、次の点に注意してください。* rawSelector と requirements の両方が設定されていないことを確認する * requirements フィールドが設定されている場合はそれを考慮する * rawSelector フィールドが設定されている場合は解析または考慮を試みない。これは、別の CVE-2022-2880 を回避するためです (異なるシステム間でクエリーの解析方法を統一するのは望ましくありません)。詳細は、https://www.oxeye.io/resources/golang-parameter-smuggling-attack を参照してください。kube-apiserver の *SubjectAccessReview エンドポイントの場合: * rawSelector も requirements も空の場合は、リクエストが制限されません。* rawSelector が存在し、requirements が空の場合は、rawSelector が解析され、解析が成功するとこれは制限されます。* rawSelector が空で要件が存在する場合は、要件が優先される必要があります。* rawSelector が存在し、要件が存在する場合は、リクエストは無効です。
- 型
-
object
プロパティー | 型 | 説明 |
---|---|---|
|
| rawSelector は、クエリーパラメーターに含まれるフィールドセレクターのシリアル化です。Webhook 実装では、rawSelector を無視することが推奨されます。kube-apiserver の *SubjectAccessReview は、requirements が存在しない限り、rawSelector を解析します。 |
| requirements は、フィールドセレクターの解析された解釈です。リソースインスタンスがセレクターと一致するためには、requirements に含まれるすべての条件が適用される必要があります。Webhook 実装は要件を処理する必要がありますが、それをどのように処理するかは Webhook 次第です。Requirements はリクエストを制限する役割しか持たないため、内容が理解できない場合は、無制限のリクエストとして許可しても問題ありません。 |
11.1.6. .spec.resourceAttributes.labelSelector
- 説明
- labelSelectorAttributes は、アクセスが制限されたラベルを示します。Webhook の作成者は、次の点に注意してください。* rawSelector と requirements の両方が設定されていないことを確認する * requirements フィールドが設定されている場合はそれを考慮する * rawSelector フィールドが設定されている場合は解析または考慮を試みない。これは、別の CVE-2022-2880 を回避するためです (異なるシステム間でクエリーの解析方法を統一するのは望ましくありません)。詳細は、https://www.oxeye.io/resources/golang-parameter-smuggling-attack を参照してください。kube-apiserver の *SubjectAccessReview エンドポイントの場合: * rawSelector も requirements も空の場合は、リクエストが制限されません。* rawSelector が存在し、requirements が空の場合は、rawSelector が解析され、解析が成功するとこれは制限されます。* rawSelector が空で要件が存在する場合は、要件が優先される必要があります。* rawSelector が存在し、要件が存在する場合は、リクエストは無効です。
- 型
-
object
プロパティー | 型 | 説明 |
---|---|---|
|
| rawSelector は、クエリーパラメーターに含まれるフィールドセレクターのシリアル化です。Webhook 実装では、rawSelector を無視することが推奨されます。kube-apiserver の *SubjectAccessReview は、requirements が存在しない限り、rawSelector を解析します。 |
| requirements は、ラベルセレクターを解析した結果の解釈です。リソースインスタンスがセレクターと一致するためには、requirements に含まれるすべての条件が適用される必要があります。Webhook 実装は要件を処理する必要がありますが、それをどのように処理するかは Webhook 次第です。Requirements はリクエストを制限する役割しか持たないため、内容が理解できない場合は、無制限のリクエストとして許可しても問題ありません。 |
11.1.7. .status
- 説明
- SubjectAccessReviewStatus
- 型
-
object
- 必須
-
allowed
-
プロパティー | 型 | 説明 |
---|---|---|
|
| allowed は必須です。アクションを許可する場合は true、許可しない場合は false です。 |
|
| denied はオプションです。アクションを拒否する場合は true、許可しない場合は false です。allowed と denied の両方が false の場合は、Authorizer がアクションを許可するかどうかについて意見を持っていません。allowed が true の場合は、denied が true ではない可能性があります。 |
|
| evaluationError は、認可チェック中にエラーが発生したことを示します。エラーが発生し、それにもかかわらず認可ステータスを判別し続けることはできます。たとえば、RBAC にロールがない可能性がありますが、十分なロールがまだ存在しており、要求の理由に拘束されています。 |
|
| reason はオプションです。リクエストが許可または拒否された理由を示します。 |
11.2. API エンドポイント
以下の API エンドポイントを利用できます。
/apis/authorization.k8s.io/v1/namespaces/{namespace}/localsubjectaccessreviews
-
POST
: LocalSubjectAccessReview を作成する
-
11.2.1. /apis/authorization.k8s.io/v1/namespaces/{namespace}/localsubjectaccessreviews
パラメーター | 型 | 説明 |
---|---|---|
|
| これは、変更を永続化してはならないことを示します。dryRun ディレクティブが無効な場合や、認識されない場合はエラーの応答が返され、その要求に対する処理はこれ以上行われません。有効な値は All で、すべてのドライランステージが処理されます。 |
|
| fieldValidation は、不明なフィールドまたは重複したフィールドを含むリクエスト (POST/PUT/PATCH) 内のオブジェクトを処理する方法をサーバーに指示します。有効な値は Ignore です。オブジェクトからサイレントにドロップされた不明なフィールドを無視し、デコーダーが検出した最後の重複フィールドを除くすべてを無視します。これは、v1.23 より前のデフォルトの動作です。- Warn: オブジェクトから削除された不明なフィールドごと、および検出された重複フィールドごとに、標準の警告応答ヘッダーを介して警告が送信されます。他にエラーがなければ要求は成功し、重複するフィールドの最後のものだけを保持します。これは v1.23 以降のデフォルトです。- Strict: 不明なフィールドがオブジェクトから削除される場合、または重複フィールドが存在する場合は、リクエストが BadRequest エラーで失敗します。サーバーから返されるエラーには、検出されたすべての不明な重複フィールドが含まれます。 |
- HTTP メソッド
-
POST
- 説明
- LocalSubjectAccessReview を作成する
パラメーター | 型 | 説明 |
---|---|---|
|
HTTP コード | レスポンスのボディー |
---|---|
200 - OK | |
201 - Created | |
202 - Accepted | |
401 - Unauthorized | 空白 |
第12章 SelfSubjectAccessReview [authorization.k8s.io/v1]
- 説明
- SelfSubjectAccessReview は、現在のユーザーがアクションを実行できるかどうかを確認します。spec.namespace に入力しない場合は、"すべての namespace 内" を意味します。ユーザーは常にアクションを実行できるかどうかを確認できる必要があるため、Self は特殊なケースです。
- 型
-
object
- 必須
-
spec
-
12.1. 仕様
プロパティー | 型 | 説明 |
---|---|---|
|
| apiVersion はオブジェクトのこの表現のバージョンスキーマを定義します。サーバーは認識されたスキーマを最新の内部値に変換し、認識されない値は拒否することがあります。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources を参照してください。 |
|
| kind はこのオブジェクトが表す REST リソースを表す文字列の値です。サーバーはクライアントが要求を送信するエンドポイントからこれを推測できる場合があります。これは更新できません。CamelCase を使用します。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds を参照してください。 |
| 標準のリストメタデータ。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata を参照してください。 | |
|
| SelfSubjectAccessReviewSpec は、アクセス要求の説明です。ResourceAuthorizationAttributes と NonResourceAuthorizationAttributes のいずれかを設定する必要があります。 |
|
| SubjectAccessReviewStatus |
12.1.1. .spec
- 説明
- SelfSubjectAccessReviewSpec は、アクセス要求の説明です。ResourceAuthorizationAttributes と NonResourceAuthorizationAttributes のいずれかを設定する必要があります。
- 型
-
object
プロパティー | 型 | 説明 |
---|---|---|
|
| nonResourceAttributes には、Authorizer インターフェイスへの非リソース要求に使用できる許可属性が含まれています。 |
|
| resourceAttributes には、Authorizer インターフェイスへのリソース要求に使用できる許可属性が含まれています。 |
12.1.2. .spec.nonResourceAttributes
- 説明
- nonResourceAttributes には、Authorizer インターフェイスへの非リソース要求に使用できる許可属性が含まれています。
- 型
-
object
プロパティー | 型 | 説明 |
---|---|---|
|
| path はリクエストの URL パスです。 |
|
| verb は標準の HTTP 動詞です。 |
12.1.3. .spec.resourceAttributes
- 説明
- resourceAttributes には、Authorizer インターフェイスへのリソース要求に使用できる許可属性が含まれています。
- 型
-
object
プロパティー | 型 | 説明 |
---|---|---|
|
| fieldSelectorAttributes はアクセスが制限されたフィールドを示します。Webhook の作成者は、次の点に注意してください。* rawSelector と requirements の両方が設定されていないことを確認する * requirements フィールドが設定されている場合はそれを考慮する * rawSelector フィールドが設定されている場合は解析または考慮を試みない。これは、別の CVE-2022-2880 を回避するためです (異なるシステム間でクエリーの解析方法を統一するのは望ましくありません)。詳細は、https://www.oxeye.io/resources/golang-parameter-smuggling-attack を参照してください。kube-apiserver の *SubjectAccessReview エンドポイントの場合: * rawSelector も requirements も空の場合は、リクエストが制限されません。* rawSelector が存在し、requirements が空の場合は、rawSelector が解析され、解析が成功するとこれは制限されます。* rawSelector が空で要件が存在する場合は、要件が優先される必要があります。* rawSelector が存在し、要件が存在する場合は、リクエストは無効です。 |
|
| group は、リソースの API グループです。"*" はすべてを意味します。 |
|
| labelSelectorAttributes は、アクセスが制限されたラベルを示します。Webhook の作成者は、次の点に注意してください。* rawSelector と requirements の両方が設定されていないことを確認する * requirements フィールドが設定されている場合はそれを考慮する * rawSelector フィールドが設定されている場合は解析または考慮を試みない。これは、別の CVE-2022-2880 を回避するためです (異なるシステム間でクエリーの解析方法を統一するのは望ましくありません)。詳細は、https://www.oxeye.io/resources/golang-parameter-smuggling-attack を参照してください。kube-apiserver の *SubjectAccessReview エンドポイントの場合: * rawSelector も requirements も空の場合は、リクエストが制限されません。* rawSelector が存在し、requirements が空の場合は、rawSelector が解析され、解析が成功するとこれは制限されます。* rawSelector が空で要件が存在する場合は、要件が優先される必要があります。* rawSelector が存在し、要件が存在する場合は、リクエストは無効です。 |
|
| name は、"取得" のために要求されているリソース、または "削除" のために削除されているリソースの名前です。"" (空) はすべてを意味します。 |
|
| namespace は、要求されているアクションの namespace です。現在、namespace なしとすべての namespace の区別はありません。""(空) は LocalSubjectAccessReviews のデフォルトです。""(空) はクラスタースコープのリソースでは空です。""(空) は SubjectAccessReview または SelfSubjectAccessReview からの namespace スコープのリソースの "すべて" を意味します。 |
|
| resource は、既存のリソースタイプの 1 つです。"*" はすべてを意味します。 |
|
| subresource は、既存のリソースタイプの 1 つです。"" は何もないことを意味します。 |
|
| verb は、get、list、watch、create、update、delete、proxy などの kubernetes リソース API 動詞です。"*" はすべてを意味します。 |
|
| version は、リソースの API バージョンです。"*" はすべてを意味します。 |
12.1.4. .spec.resourceAttributes.fieldSelector
- 説明
- fieldSelectorAttributes はアクセスが制限されたフィールドを示します。Webhook の作成者は、次の点に注意してください。* rawSelector と requirements の両方が設定されていないことを確認する * requirements フィールドが設定されている場合はそれを考慮する * rawSelector フィールドが設定されている場合は解析または考慮を試みない。これは、別の CVE-2022-2880 を回避するためです (異なるシステム間でクエリーの解析方法を統一するのは望ましくありません)。詳細は、https://www.oxeye.io/resources/golang-parameter-smuggling-attack を参照してください。kube-apiserver の *SubjectAccessReview エンドポイントの場合: * rawSelector も requirements も空の場合は、リクエストが制限されません。* rawSelector が存在し、requirements が空の場合は、rawSelector が解析され、解析が成功するとこれは制限されます。* rawSelector が空で要件が存在する場合は、要件が優先される必要があります。* rawSelector が存在し、要件が存在する場合は、リクエストは無効です。
- 型
-
object
プロパティー | 型 | 説明 |
---|---|---|
|
| rawSelector は、クエリーパラメーターに含まれるフィールドセレクターのシリアル化です。Webhook 実装では、rawSelector を無視することが推奨されます。kube-apiserver の *SubjectAccessReview は、requirements が存在しない限り、rawSelector を解析します。 |
| requirements は、フィールドセレクターの解析された解釈です。リソースインスタンスがセレクターと一致するためには、requirements に含まれるすべての条件が適用される必要があります。Webhook 実装は要件を処理する必要がありますが、それをどのように処理するかは Webhook 次第です。Requirements はリクエストを制限する役割しか持たないため、内容が理解できない場合は、無制限のリクエストとして許可しても問題ありません。 |
12.1.5. .spec.resourceAttributes.labelSelector
- 説明
- labelSelectorAttributes は、アクセスが制限されたラベルを示します。Webhook の作成者は、次の点に注意してください。* rawSelector と requirements の両方が設定されていないことを確認する * requirements フィールドが設定されている場合はそれを考慮する * rawSelector フィールドが設定されている場合は解析または考慮を試みない。これは、別の CVE-2022-2880 を回避するためです (異なるシステム間でクエリーの解析方法を統一するのは望ましくありません)。詳細は、https://www.oxeye.io/resources/golang-parameter-smuggling-attack を参照してください。kube-apiserver の *SubjectAccessReview エンドポイントの場合: * rawSelector も requirements も空の場合は、リクエストが制限されません。* rawSelector が存在し、requirements が空の場合は、rawSelector が解析され、解析が成功するとこれは制限されます。* rawSelector が空で要件が存在する場合は、要件が優先される必要があります。* rawSelector が存在し、要件が存在する場合は、リクエストは無効です。
- 型
-
object
プロパティー | 型 | 説明 |
---|---|---|
|
| rawSelector は、クエリーパラメーターに含まれるフィールドセレクターのシリアル化です。Webhook 実装では、rawSelector を無視することが推奨されます。kube-apiserver の *SubjectAccessReview は、requirements が存在しない限り、rawSelector を解析します。 |
| requirements は、ラベルセレクターを解析した結果の解釈です。リソースインスタンスがセレクターと一致するためには、requirements に含まれるすべての条件が適用される必要があります。Webhook 実装は要件を処理する必要がありますが、それをどのように処理するかは Webhook 次第です。Requirements はリクエストを制限する役割しか持たないため、内容が理解できない場合は、無制限のリクエストとして許可しても問題ありません。 |
12.1.6. .status
- 説明
- SubjectAccessReviewStatus
- 型
-
object
- 必須
-
allowed
-
プロパティー | 型 | 説明 |
---|---|---|
|
| allowed は必須です。アクションを許可する場合は true、許可しない場合は false です。 |
|
| denied はオプションです。アクションを拒否する場合は true、許可しない場合は false です。allowed と denied の両方が false の場合は、Authorizer がアクションを許可するかどうかについて意見を持っていません。allowed が true の場合は、denied が true ではない可能性があります。 |
|
| evaluationError は、認可チェック中にエラーが発生したことを示します。エラーが発生し、それにもかかわらず認可ステータスを判別し続けることはできます。たとえば、RBAC にロールがない可能性がありますが、十分なロールがまだ存在しており、要求の理由に拘束されています。 |
|
| reason はオプションです。リクエストが許可または拒否された理由を示します。 |
12.2. API エンドポイント
以下の API エンドポイントを利用できます。
/apis/authorization.k8s.io/v1/selfsubjectaccessreviews
-
POST
: SelfSubjectAccessReview を作成する
-
12.2.1. /apis/authorization.k8s.io/v1/selfsubjectaccessreviews
パラメーター | 型 | 説明 |
---|---|---|
|
| これは、変更を永続化してはならないことを示します。dryRun ディレクティブが無効な場合や、認識されない場合はエラーの応答が返され、その要求に対する処理はこれ以上行われません。有効な値は All で、すべてのドライランステージが処理されます。 |
|
| fieldValidation は、不明なフィールドまたは重複したフィールドを含むリクエスト (POST/PUT/PATCH) 内のオブジェクトを処理する方法をサーバーに指示します。有効な値は Ignore です。オブジェクトからサイレントにドロップされた不明なフィールドを無視し、デコーダーが検出した最後の重複フィールドを除くすべてを無視します。これは、v1.23 より前のデフォルトの動作です。- Warn: オブジェクトから削除された不明なフィールドごと、および検出された重複フィールドごとに、標準の警告応答ヘッダーを介して警告が送信されます。他にエラーがなければ要求は成功し、重複するフィールドの最後のものだけを保持します。これは v1.23 以降のデフォルトです。- Strict: 不明なフィールドがオブジェクトから削除される場合、または重複フィールドが存在する場合は、リクエストが BadRequest エラーで失敗します。サーバーから返されるエラーには、検出されたすべての不明な重複フィールドが含まれます。 |
- HTTP メソッド
-
POST
- 説明
- SelfSubjectAccessReview を作成する
パラメーター | 型 | 説明 |
---|---|---|
|
HTTP コード | レスポンスのボディー |
---|---|
200 - OK | |
201 - Created | |
202 - Accepted | |
401 - Unauthorized | 空白 |
第13章 SelfSubjectRulesReview [authorization.k8s.io/v1]
- 説明
- SelfSubjectRulesReview は、現在のユーザーが namespace 内で実行できるアクションのセットを列挙します。サーバーの認証モード、および評価中に発生したエラーに応じて、返されるアクションのリストが不完全な場合があります。SelfSubjectRulesReview は、UI でアクションを表示/非表示にしたり、エンドユーザーにパーミッションに関する理由を素早く伝えたりするために使用します。これは、代理人の混乱、キャッシュの有効期限/失効、および正確性の懸念を引き起こすため、承認の決定を推進するために外部システムに使用されるべきではありません。SubjectAccessReview および LocalAccessReview は、API サーバーへの承認決定を遅らせる正しい方法です。
- 型
-
object
- 必須
-
spec
-
13.1. 仕様
プロパティー | 型 | 説明 |
---|---|---|
|
| apiVersion はオブジェクトのこの表現のバージョンスキーマを定義します。サーバーは認識されたスキーマを最新の内部値に変換し、認識されない値は拒否することがあります。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources を参照してください。 |
|
| kind はこのオブジェクトが表す REST リソースを表す文字列の値です。サーバーはクライアントが要求を送信するエンドポイントからこれを推測できる場合があります。これは更新できません。CamelCase を使用します。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds を参照してください。 |
| 標準のリストメタデータ。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata を参照してください。 | |
|
| SelfSubjectRulesReviewSpec は、SelfSubjectRulesReview の仕様を定義します。 |
|
| SubjectRulesReviewStatus には、ルールチェックの結果が含まれています。このチェックは、サーバーが設定されている Authorizer のセットと、評価中に発生したエラーによっては不完全になる可能性があります。認可ルールは付加的なものであるため、ルールがリストに表示されている場合は、そのリストが不完全であっても、サブジェクトがその許可を持っていると見なすのが安全です。 |
13.1.1. .spec
- 説明
- SelfSubjectRulesReviewSpec は、SelfSubjectRulesReview の仕様を定義します。
- 型
-
object
プロパティー | 型 | 説明 |
---|---|---|
|
| ルールを評価するための namespace。必須。 |
13.1.2. .status
- 説明
- SubjectRulesReviewStatus には、ルールチェックの結果が含まれています。このチェックは、サーバーが設定されている Authorizer のセットと、評価中に発生したエラーによっては不完全になる可能性があります。認可ルールは付加的なものであるため、ルールがリストに表示されている場合は、そのリストが不完全であっても、サブジェクトがその許可を持っていると見なすのが安全です。
- 型
-
object
- 必須
-
resourceRules
-
nonResourceRules
-
incomplete
-
プロパティー | 型 | 説明 |
---|---|---|
|
| evaluationError は、ルールと組み合わせて表示される場合があります。これは、ルール評価をサポートしていない Authorizer など、ルール評価中にエラーが発生したこと、および ResourceRules や NonResourceRules が不完全である可能性があることを示しています。 |
|
| この呼び出しによって返されるルールが不完全な場合、Incomplete は true です。これは、外部の Authorizer などの Authorizer がルールの評価をサポートしていない場合に最もよく発生します。 |
|
| nonResourceRules は、サブジェクトが非リソースに対して実行できるアクションのリストです。リストの順序は重要ではなく、重複が含まれている可能性があり、不完全である可能性があります。 |
|
| nonResourceRule は、非リソースのルールを説明する情報を保持します。 |
|
| resourceRules は、サブジェクトがリソースに対して実行できるアクションのリストです。リストの順序は重要ではなく、重複が含まれている可能性があり、不完全である可能性があります。 |
|
| resourceRule は、サブジェクトがリソースに対して実行できるアクションのリストです。リストの順序は重要ではなく、重複が含まれている可能性があり、不完全である可能性があります。 |
13.1.3. .status.nonResourceRules
- 説明
- nonResourceRules は、サブジェクトが非リソースに対して実行できるアクションのリストです。リストの順序は重要ではなく、重複が含まれている可能性があり、不完全である可能性があります。
- 型
-
array
13.1.4. .status.nonResourceRules[]
- 説明
- nonResourceRule は、非リソースのルールを説明する情報を保持します。
- 型
-
object
- 必須
-
verbs
-
プロパティー | 型 | 説明 |
---|---|---|
|
| nonResourceURLs は、ユーザーがアクセスできる必要のある部分的な URL のセットです。s は許可されますが、パスの完全な最終ステップとしてのみ許可されます。"" はすべてを意味します。 |
|
| verbs は、get、post、put、delete、patch、head、options などの kubernetes の非リソース API 動詞のリストです。"*" はすべてを意味します。 |
13.1.5. .status.resourceRules
- 説明
- resourceRules は、サブジェクトがリソースに対して実行できるアクションのリストです。リストの順序は重要ではなく、重複が含まれている可能性があり、不完全である可能性があります。
- 型
-
array
13.1.6. .status.resourceRules[]
- 説明
- resourceRule は、サブジェクトがリソースに対して実行できるアクションのリストです。リストの順序は重要ではなく、重複が含まれている可能性があり、不完全である可能性があります。
- 型
-
object
- 必須
-
verbs
-
プロパティー | 型 | 説明 |
---|---|---|
|
| apiGroups は、リソースを含む APIGroup の名前です。複数の API グループが指定されている場合は、任意の API グループ内の列挙されたリソースの 1 つに対して要求されたすべてのアクションが許可されます。"*" はすべてを意味します。 |
|
| resourceNames は、ルールが適用される名前のオプションのホワイトリストです。空のセットは、すべてが許可されていることを意味します。"*" はすべてを意味します。 |
|
| resources は、このルールが適用されるリソースのリストです。"" は、指定された apiGroups 内のすべてを意味します。"/foo" は、指定された apiGroups 内のすべてのリソースのサブリソース 'foo' を表します。 |
|
| verbs は、get、list、watch、create、update、delete、proxy などの kubernetes リソース API 動詞のリストです。"*" はすべてを意味します。 |
13.2. API エンドポイント
以下の API エンドポイントを利用できます。
/apis/authorization.k8s.io/v1/selfsubjectrulesreviews
-
POST
: SelfSubjectRulesReview を作成する
-
13.2.1. /apis/authorization.k8s.io/v1/selfsubjectrulesreviews
パラメーター | 型 | 説明 |
---|---|---|
|
| これは、変更を永続化してはならないことを示します。dryRun ディレクティブが無効な場合や、認識されない場合はエラーの応答が返され、その要求に対する処理はこれ以上行われません。有効な値は All で、すべてのドライランステージが処理されます。 |
|
| fieldValidation は、不明なフィールドまたは重複したフィールドを含むリクエスト (POST/PUT/PATCH) 内のオブジェクトを処理する方法をサーバーに指示します。有効な値は Ignore です。オブジェクトからサイレントにドロップされた不明なフィールドを無視し、デコーダーが検出した最後の重複フィールドを除くすべてを無視します。これは、v1.23 より前のデフォルトの動作です。- Warn: オブジェクトから削除された不明なフィールドごと、および検出された重複フィールドごとに、標準の警告応答ヘッダーを介して警告が送信されます。他にエラーがなければ要求は成功し、重複するフィールドの最後のものだけを保持します。これは v1.23 以降のデフォルトです。- Strict: 不明なフィールドがオブジェクトから削除される場合、または重複フィールドが存在する場合は、リクエストが BadRequest エラーで失敗します。サーバーから返されるエラーには、検出されたすべての不明な重複フィールドが含まれます。 |
- HTTP メソッド
-
POST
- 説明
- SelfSubjectRulesReview を作成する
パラメーター | 型 | 説明 |
---|---|---|
|
HTTP コード | レスポンスのボディー |
---|---|
200 - OK | |
201 - Created | |
202 - Accepted | |
401 - Unauthorized | 空白 |
第14章 SubjectAccessReview [authorization.k8s.io/v1]
- 説明
- SubjectAccessReview は、ユーザーまたはグループがアクションを実行できるかどうかをチェックします。
- 型
-
object
- 必須
-
spec
-
14.1. 仕様
プロパティー | 型 | 説明 |
---|---|---|
|
| apiVersion はオブジェクトのこの表現のバージョンスキーマを定義します。サーバーは認識されたスキーマを最新の内部値に変換し、認識されない値は拒否することがあります。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources を参照してください。 |
|
| kind はこのオブジェクトが表す REST リソースを表す文字列の値です。サーバーはクライアントが要求を送信するエンドポイントからこれを推測できる場合があります。これは更新できません。CamelCase を使用します。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds を参照してください。 |
| 標準のリストメタデータ。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata を参照してください。 | |
|
| SubjectAccessReviewSpec は、アクセス要求の説明です。ResourceAuthorizationAttributes と NonResourceAuthorizationAttributes のいずれかを設定する必要があります。 |
|
| SubjectAccessReviewStatus |
14.1.1. .spec
- 説明
- SubjectAccessReviewSpec は、アクセス要求の説明です。ResourceAuthorizationAttributes と NonResourceAuthorizationAttributes のいずれかを設定する必要があります。
- 型
-
object
プロパティー | 型 | 説明 |
---|---|---|
|
| extra は、オーセンティケーターの user.Info.GetExtra() メソッドに対応します。これは Authorizer に入力されるため、ここで反映する必要があります。 |
|
| |
|
| groups は、テストしているグループです。 |
|
| nonResourceAttributes には、Authorizer インターフェイスへの非リソース要求に使用できる許可属性が含まれています。 |
|
| resourceAttributes には、Authorizer インターフェイスへのリソース要求に使用できる許可属性が含まれています。 |
|
| 要求しているユーザーに関する UID 情報。 |
|
| user は、テストしているユーザーです。"user" を指定し、"groups" を指定しない場合は、「そのユーザーがどのグループにも所属していなかったらどうなるか」という意味になります。 |
14.1.2. .spec.extra
- 説明
- extra は、オーセンティケーターの user.Info.GetExtra() メソッドに対応します。これは Authorizer に入力されるため、ここで反映する必要があります。
- 型
-
object
14.1.3. .spec.nonResourceAttributes
- 説明
- nonResourceAttributes には、Authorizer インターフェイスへの非リソース要求に使用できる許可属性が含まれています。
- 型
-
object
プロパティー | 型 | 説明 |
---|---|---|
|
| path はリクエストの URL パスです。 |
|
| verb は標準の HTTP 動詞です。 |
14.1.4. .spec.resourceAttributes
- 説明
- resourceAttributes には、Authorizer インターフェイスへのリソース要求に使用できる許可属性が含まれています。
- 型
-
object
プロパティー | 型 | 説明 |
---|---|---|
|
| fieldSelectorAttributes はアクセスが制限されたフィールドを示します。Webhook の作成者は、次の点に注意してください。* rawSelector と requirements の両方が設定されていないことを確認する * requirements フィールドが設定されている場合はそれを考慮する * rawSelector フィールドが設定されている場合は解析または考慮を試みない。これは、別の CVE-2022-2880 を回避するためです (異なるシステム間でクエリーの解析方法を統一するのは望ましくありません)。詳細は、https://www.oxeye.io/resources/golang-parameter-smuggling-attack を参照してください。kube-apiserver の *SubjectAccessReview エンドポイントの場合: * rawSelector も requirements も空の場合は、リクエストが制限されません。* rawSelector が存在し、requirements が空の場合は、rawSelector が解析され、解析が成功するとこれは制限されます。* rawSelector が空で要件が存在する場合は、要件が優先される必要があります。* rawSelector が存在し、要件が存在する場合は、リクエストは無効です。 |
|
| group は、リソースの API グループです。"*" はすべてを意味します。 |
|
| labelSelectorAttributes は、アクセスが制限されたラベルを示します。Webhook の作成者は、次の点に注意してください。* rawSelector と requirements の両方が設定されていないことを確認する * requirements フィールドが設定されている場合はそれを考慮する * rawSelector フィールドが設定されている場合は解析または考慮を試みない。これは、別の CVE-2022-2880 を回避するためです (異なるシステム間でクエリーの解析方法を統一するのは望ましくありません)。詳細は、https://www.oxeye.io/resources/golang-parameter-smuggling-attack を参照してください。kube-apiserver の *SubjectAccessReview エンドポイントの場合: * rawSelector も requirements も空の場合は、リクエストが制限されません。* rawSelector が存在し、requirements が空の場合は、rawSelector が解析され、解析が成功するとこれは制限されます。* rawSelector が空で要件が存在する場合は、要件が優先される必要があります。* rawSelector が存在し、要件が存在する場合は、リクエストは無効です。 |
|
| name は、"取得" のために要求されているリソース、または "削除" のために削除されているリソースの名前です。"" (空) はすべてを意味します。 |
|
| namespace は、要求されているアクションの namespace です。現在、namespace なしとすべての namespace の区別はありません。""(空) は LocalSubjectAccessReviews のデフォルトです。""(空) はクラスタースコープのリソースでは空です。""(空) は SubjectAccessReview または SelfSubjectAccessReview からの namespace スコープのリソースの "すべて" を意味します。 |
|
| resource は、既存のリソースタイプの 1 つです。"*" はすべてを意味します。 |
|
| subresource は、既存のリソースタイプの 1 つです。"" は何もないことを意味します。 |
|
| verb は、get、list、watch、create、update、delete、proxy などの kubernetes リソース API 動詞です。"*" はすべてを意味します。 |
|
| version は、リソースの API バージョンです。"*" はすべてを意味します。 |
14.1.5. .spec.resourceAttributes.fieldSelector
- 説明
- fieldSelectorAttributes はアクセスが制限されたフィールドを示します。Webhook の作成者は、次の点に注意してください。* rawSelector と requirements の両方が設定されていないことを確認する * requirements フィールドが設定されている場合はそれを考慮する * rawSelector フィールドが設定されている場合は解析または考慮を試みない。これは、別の CVE-2022-2880 を回避するためです (異なるシステム間でクエリーの解析方法を統一するのは望ましくありません)。詳細は、https://www.oxeye.io/resources/golang-parameter-smuggling-attack を参照してください。kube-apiserver の *SubjectAccessReview エンドポイントの場合: * rawSelector も requirements も空の場合は、リクエストが制限されません。* rawSelector が存在し、requirements が空の場合は、rawSelector が解析され、解析が成功するとこれは制限されます。* rawSelector が空で要件が存在する場合は、要件が優先される必要があります。* rawSelector が存在し、要件が存在する場合は、リクエストは無効です。
- 型
-
object
プロパティー | 型 | 説明 |
---|---|---|
|
| rawSelector は、クエリーパラメーターに含まれるフィールドセレクターのシリアル化です。Webhook 実装では、rawSelector を無視することが推奨されます。kube-apiserver の *SubjectAccessReview は、requirements が存在しない限り、rawSelector を解析します。 |
| requirements は、フィールドセレクターの解析された解釈です。リソースインスタンスがセレクターと一致するためには、requirements に含まれるすべての条件が適用される必要があります。Webhook 実装は要件を処理する必要がありますが、それをどのように処理するかは Webhook 次第です。Requirements はリクエストを制限する役割しか持たないため、内容が理解できない場合は、無制限のリクエストとして許可しても問題ありません。 |
14.1.6. .spec.resourceAttributes.labelSelector
- 説明
- labelSelectorAttributes は、アクセスが制限されたラベルを示します。Webhook の作成者は、次の点に注意してください。* rawSelector と requirements の両方が設定されていないことを確認する * requirements フィールドが設定されている場合はそれを考慮する * rawSelector フィールドが設定されている場合は解析または考慮を試みない。これは、別の CVE-2022-2880 を回避するためです (異なるシステム間でクエリーの解析方法を統一するのは望ましくありません)。詳細は、https://www.oxeye.io/resources/golang-parameter-smuggling-attack を参照してください。kube-apiserver の *SubjectAccessReview エンドポイントの場合: * rawSelector も requirements も空の場合は、リクエストが制限されません。* rawSelector が存在し、requirements が空の場合は、rawSelector が解析され、解析が成功するとこれは制限されます。* rawSelector が空で要件が存在する場合は、要件が優先される必要があります。* rawSelector が存在し、要件が存在する場合は、リクエストは無効です。
- 型
-
object
プロパティー | 型 | 説明 |
---|---|---|
|
| rawSelector は、クエリーパラメーターに含まれるフィールドセレクターのシリアル化です。Webhook 実装では、rawSelector を無視することが推奨されます。kube-apiserver の *SubjectAccessReview は、requirements が存在しない限り、rawSelector を解析します。 |
| requirements は、ラベルセレクターを解析した結果の解釈です。リソースインスタンスがセレクターと一致するためには、requirements に含まれるすべての条件が適用される必要があります。Webhook 実装は要件を処理する必要がありますが、それをどのように処理するかは Webhook 次第です。Requirements はリクエストを制限する役割しか持たないため、内容が理解できない場合は、無制限のリクエストとして許可しても問題ありません。 |
14.1.7. .status
- 説明
- SubjectAccessReviewStatus
- 型
-
object
- 必須
-
allowed
-
プロパティー | 型 | 説明 |
---|---|---|
|
| allowed は必須です。アクションを許可する場合は true、許可しない場合は false です。 |
|
| denied はオプションです。アクションを拒否する場合は true、許可しない場合は false です。allowed と denied の両方が false の場合は、Authorizer がアクションを許可するかどうかについて意見を持っていません。allowed が true の場合は、denied が true ではない可能性があります。 |
|
| evaluationError は、認可チェック中にエラーが発生したことを示します。エラーが発生し、それにもかかわらず認可ステータスを判別し続けることはできます。たとえば、RBAC にロールがない可能性がありますが、十分なロールがまだ存在しており、要求の理由に拘束されています。 |
|
| reason はオプションです。リクエストが許可または拒否された理由を示します。 |
14.2. API エンドポイント
以下の API エンドポイントを利用できます。
/apis/authorization.k8s.io/v1/subjectaccessreviews
-
POST
: SubjectAccessReview を作成する
-
14.2.1. /apis/authorization.k8s.io/v1/subjectaccessreviews
パラメーター | 型 | 説明 |
---|---|---|
|
| これは、変更を永続化してはならないことを示します。dryRun ディレクティブが無効な場合や、認識されない場合はエラーの応答が返され、その要求に対する処理はこれ以上行われません。有効な値は All で、すべてのドライランステージが処理されます。 |
|
| fieldValidation は、不明なフィールドまたは重複したフィールドを含むリクエスト (POST/PUT/PATCH) 内のオブジェクトを処理する方法をサーバーに指示します。有効な値は Ignore です。オブジェクトからサイレントにドロップされた不明なフィールドを無視し、デコーダーが検出した最後の重複フィールドを除くすべてを無視します。これは、v1.23 より前のデフォルトの動作です。- Warn: オブジェクトから削除された不明なフィールドごと、および検出された重複フィールドごとに、標準の警告応答ヘッダーを介して警告が送信されます。他にエラーがなければ要求は成功し、重複するフィールドの最後のものだけを保持します。これは v1.23 以降のデフォルトです。- Strict: 不明なフィールドがオブジェクトから削除される場合、または重複フィールドが存在する場合は、リクエストが BadRequest エラーで失敗します。サーバーから返されるエラーには、検出されたすべての不明な重複フィールドが含まれます。 |
- HTTP メソッド
-
POST
- 説明
- SubjectAccessReview を作成する
パラメーター | 型 | 説明 |
---|---|---|
|
|
HTTP コード | レスポンスのボディー |
---|---|
200 - OK |
|
201 - Created |
|
202 - Accepted |
|
401 - Unauthorized | 空白 |
Legal Notice
Copyright © 2024 Red Hat, Inc.
OpenShift documentation is licensed under the Apache License 2.0 (https://www.apache.org/licenses/LICENSE-2.0).
Modified versions must remove all Red Hat trademarks.
Portions adapted from https://github.com/kubernetes-incubator/service-catalog/ with modifications by Red Hat.
Red Hat, Red Hat Enterprise Linux, the Red Hat logo, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation’s permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.