mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-31 07:00:38 -08:00
Translated ['src/pentesting-cloud/azure-security/az-persistence/az-cloud
This commit is contained in:
@@ -50,7 +50,7 @@ GCPハッキングを学び、実践する:<img src="../../../.gitbook/assets/
|
||||
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**をフォローしてください。**
|
||||
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
|
||||
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを送信してハッキングトリックを共有してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
@@ -10,7 +10,7 @@ GCPハッキングを学び、実践する:<img src="../../../.gitbook/assets/
|
||||
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**をフォローしてください。**
|
||||
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを送信してハッキングトリックを共有してください。**
|
||||
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
@@ -36,7 +36,7 @@ az logic workflow identity remove/assign \
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.Web/sites/read", "Microsoft.Web/sites/write"
|
||||
これらの権限を持つことで、App Service PlanにホストされているLogic Appsを作成または更新できます。これには、HTTPS強制の有効化または無効化などの設定の変更が含まれます。
|
||||
これらの権限を持つことで、App Service Plan上にホストされているLogic Appsを作成または更新できます。これには、HTTPS強制の有効化または無効化などの設定の変更が含まれます。
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
@@ -48,7 +48,7 @@ az logicapp update \
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.Web/sites/stop/action", "Microsoft.Web/sites/start/action" || "Microsoft.Web/sites/restart/action"
|
||||
この権限を持つことで、App Service Plan上にホストされているLogic Appsを含むWebアプリを開始/停止/再起動できます。このアクションは、以前に停止されたアプリがオンラインに戻り、その機能を再開することを保証します。これにより、ワークフローが中断されたり、意図しない操作がトリガーされたり、Logic Appsが予期せずに開始、停止、または再起動されることによってダウンタイムが発生する可能性があります。
|
||||
この権限を持つことで、App Service Plan上でホストされているLogic Appsを含むWebアプリを開始/停止/再起動できます。このアクションは、以前に停止されたアプリがオンラインに戻り、その機能を再開することを保証します。これにより、ワークフローが中断されたり、意図しない操作がトリガーされたり、Logic Appsが予期せずに開始、停止、または再起動されることによってダウンタイムが発生する可能性があります。
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
@@ -119,7 +119,7 @@ az logic integration-account map create \
|
||||
{% endcode %}
|
||||
|
||||
### "Microsoft.Resources/subscriptions/resourcegroups/read" && "Microsoft.Logic/integrationAccounts/partners/write"
|
||||
この権限を持つことで、Azure Logic Apps 統合アカウント内のパートナーを作成または変更できます。パートナーは、ビジネス間 (B2B) ワークフローに参加するエンティティまたはシステムを表します。
|
||||
この権限を持つことで、Azure Logic Appsの統合アカウント内のパートナーを作成または変更できます。パートナーは、ビジネス間(B2B)ワークフローに参加するエンティティまたはシステムを表します。
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
@@ -163,7 +163,7 @@ az logic integration-account session create \
|
||||
{% endcode %}
|
||||
|
||||
### "*/delete"
|
||||
この権限を持つと、Azure Logic Apps に関連するリソースを削除できます。
|
||||
この権限を持つと、Azure Logic Appsに関連するリソースを削除できます。
|
||||
|
||||
{% hint style="success" %}
|
||||
AWSハッキングを学び、実践する:<img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">\
|
||||
@@ -175,7 +175,7 @@ GCPハッキングを学び、実践する:<img src="../../../.gitbook/assets/
|
||||
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**をフォローしてください。**
|
||||
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを送信してハッキングトリックを共有してください。**
|
||||
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
@@ -10,7 +10,7 @@ GCPハッキングを学び、実践する:<img src="../../../.gitbook/assets/
|
||||
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**をフォローしてください。**
|
||||
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを送信してください。**
|
||||
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
@@ -50,7 +50,7 @@ az rest \
|
||||
--headers "Content-Type=application/json"
|
||||
```
|
||||
### ("Microsoft.Web/sites/read", "Microsoft.Web/sites/basicPublishingCredentialsPolicies/read", "Microsoft.Web/sites/write", "Microsoft.Web/sites/config/list/action") && ("Microsoft.Web/sites/start/action")
|
||||
これらの権限を持つことで、ZIPファイルデプロイメントを使用してLogic Appワークフローをデプロイできます。これらの権限は、アプリの詳細を読み取ったり、公開資格情報にアクセスしたり、変更を加えたり、アプリの構成を一覧表示したりするアクションを可能にします。スタート権限とともに、希望するコンテンツで新しいLogic Appを更新およびデプロイできます。
|
||||
これらの権限を持つことで、ZIPファイルデプロイメントを使用してLogic Appワークフローをデプロイできます。これらの権限により、アプリの詳細を読み取ったり、公開資格情報にアクセスしたり、変更を加えたり、アプリの構成を一覧表示したりすることができます。開始権限とともに、希望するコンテンツで新しいLogic Appを更新およびデプロイできます。
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
||||
@@ -10,7 +10,7 @@ Azure App Servicesは、開発者が**ウェブアプリケーション、モバ
|
||||
|
||||
- FreeおよびSharedティアのアプリは**共有VM**上で実行されます。
|
||||
- StandardおよびPremiumティアのアプリは**同じApp Serviceプラン内のアプリのみが共有する専用VM**上で実行されます。
|
||||
- Isolatedティアは**専用の仮想ネットワーク上の専用VM**で実行され、アプリの隔離が改善されます。
|
||||
- Isolatedティアは**専用の仮想ネットワーク上の専用VM**で実行され、アプリの隔離が向上します。
|
||||
|
||||
> [!WARNING]
|
||||
> これらの隔離は、他の一般的な**ウェブ脆弱性**(ファイルアップロードやインジェクションなど)を**防ぐものではありません**。また、**管理アイデンティティ**が使用される場合、それに**権限を昇格させる**ことができる可能性があります。
|
||||
@@ -28,7 +28,7 @@ Azure App Servicesは、開発者が**ウェブアプリケーション、モバ
|
||||
|
||||
## Basic Authentication
|
||||
|
||||
ウェブアプリ(通常はAzure関数)を作成する際に、**Basic Authenticationを有効にするかどうかを指定できます**(デフォルトでは無効)。これは基本的に、アプリケーションのために**SCM(ソースコントロールマネージャー)およびFTP(ファイル転送プロトコル)**を有効にすることを意味し、これらの技術を使用してアプリケーションをデプロイできるようになります。
|
||||
ウェブアプリ(通常はAzure関数)を作成する際に、**Basic Authenticationを有効にするかどうかを指定できます**(デフォルトでは無効)。これは基本的に、アプリケーションのために**SCM(ソースコントロールマネージャー)およびFTP(ファイル転送プロトコル)**を有効にすることを意味し、これらの技術を使用してアプリケーションを展開できるようになります。
|
||||
|
||||
SCMおよびFTPサーバーにアクセスするには、**ユーザー名とパスワード**が必要です。したがって、AzureはこれらのプラットフォームへのURLと資格情報を取得するための**APIを提供します**。
|
||||
|
||||
@@ -39,16 +39,16 @@ SCM
|
||||
|
||||
### Kudu
|
||||
|
||||
Kuduは、**SCMとアプリサービスを管理するためのウェブおよびAPIインターフェースの両方を管理するプラットフォーム**であり、Gitベースのデプロイメント、リモートデバッグ、およびファイル管理機能を提供します。ウェブアプリで定義されたSCM URLを通じてアクセスできます。
|
||||
Kuduは、**SCMとウェブおよびAPIインターフェースの両方を管理**するプラットフォームで、App Serviceを管理し、Gitベースのデプロイメント、リモートデバッグ、およびファイル管理機能を提供します。ウェブアプリで定義されたSCM URLを通じてアクセスできます。
|
||||
|
||||
App ServicesとFunction Appsで使用されるKuduのバージョンは異なり、Function Appsのバージョンははるかに制限されています。
|
||||
|
||||
Kuduで見つけることができるいくつかの興味深いエンドポイントは次のとおりです:
|
||||
- `/BasicAuth`: Kuduに**ログインするためにこのパスにアクセスする必要があります**。
|
||||
- `/DebugConsole`: Kuduが実行されている環境でコマンドを実行できるコンソールです。
|
||||
- この環境は**トークンを取得するためのメタデータサービスにアクセスできません**。
|
||||
- この環境は**メタデータサービスにアクセスできません**。
|
||||
- `/webssh/host`: アプリが実行されているコンテナ内に接続できるウェブベースのSSHクライアントです。
|
||||
- この環境は、割り当てられた管理アイデンティティからトークンを取得するための**メタデータサービスにアクセスできます**。
|
||||
- この環境は、割り当てられた管理アイデンティティからトークンを取得するために**メタデータサービスにアクセスできます**。
|
||||
- `/Env`: システム、アプリ設定、環境変数、接続文字列、およびHTTPヘッダーに関する情報を取得します。
|
||||
- `/wwwroot/`: ウェブアプリのルートディレクトリです。ここからすべてのファイルをダウンロードできます。
|
||||
|
||||
@@ -70,14 +70,14 @@ App Servicesは、デフォルトでコードをzipファイルとしてアッ
|
||||
|
||||
## Webjobs
|
||||
|
||||
Azure WebJobsは、**Azure App Service環境で実行されるバックグラウンドタスク**です。これにより、開発者はウェブアプリケーションと並行してスクリプトやプログラムを実行でき、ファイル処理、データ処理、またはスケジュールされたタスクなどの非同期または時間集約的な操作を簡単に処理できます。
|
||||
Webジョブには2種類あります:
|
||||
Azure WebJobsは、**Azure App Service環境で実行されるバックグラウンドタスク**です。これにより、開発者はウェブアプリケーションと並行してスクリプトやプログラムを実行でき、ファイル処理、データ処理、またはスケジュールされたタスクなどの非同期または時間集約型の操作を簡単に処理できます。
|
||||
ウェブジョブには2種類あります:
|
||||
- **継続的**: 無限にループで実行され、作成されるとすぐにトリガーされます。常に処理が必要なタスクに最適です。ただし、Always Onが無効になっていて、過去20分間リクエストを受信していない場合、アプリが停止するとウェブジョブも停止します。
|
||||
- **トリガー**: オンデマンドまたはスケジュールに基づいて実行されます。バッチデータの更新やメンテナンスルーチンなどの定期的なタスクに最適です。
|
||||
|
||||
Webジョブは、環境内で**コードを実行**し、接続された管理アイデンティティに**権限を昇格させる**ために使用できるため、攻撃者の視点から非常に興味深いです。
|
||||
ウェブジョブは、環境内で**コードを実行**し、接続された管理アイデンティティに**権限を昇格**させるために使用できるため、攻撃者の視点から非常に興味深いです。
|
||||
|
||||
さらに、Webジョブによって生成された**ログ**を確認することは常に興味深いです。これには**機密情報**が含まれている可能性があります。
|
||||
さらに、ウェブジョブによって生成された**ログ**を確認することは常に興味深いです。これには**機密情報**が含まれている可能性があります。
|
||||
|
||||
## Slots
|
||||
|
||||
@@ -87,9 +87,9 @@ Azure App Service Slotsは、**同じApp Serviceに異なるバージョンの
|
||||
|
||||
## Azure Function Apps
|
||||
|
||||
基本的に**Azure Function AppsはAzure App Serviceのサブセット**であり、ウェブコンソールに表示されます。ウェブコンソールにアクセスしてすべてのアプリサービスをリスト表示するか、az cliで`az webapp list`を実行すると、**Function Appsもそこにリストされているのが確認できます**。
|
||||
基本的に**Azure Function appsはAzure App Serviceのサブセット**であり、ウェブコンソールに表示されます。ウェブコンソールにアクセスしてすべてのアプリサービスをリスト表示するか、az cliで`az webapp list`を実行すると、**Function appsもそこにリストされているのが見えます**。
|
||||
|
||||
したがって、両方のサービスは実際にはほとんど**同じ設定、機能、およびオプションをaz cliで持っています**が、アプリ設定のデフォルト値やFunction Appsでのストレージアカウントの使用など、少し異なる設定がされている場合があります。
|
||||
したがって、両方のサービスは実際にはほとんど**同じ設定、機能、およびaz cliのオプションを持っています**が、アプリ設定のデフォルト値やFunction appsでのストレージアカウントの使用など、少し異なる方法で構成される場合があります。
|
||||
|
||||
## Enumeration
|
||||
|
||||
@@ -270,7 +270,7 @@ done
|
||||
../az-privilege-escalation/az-app-services-privesc.md
|
||||
{{#endref}}
|
||||
|
||||
## Web Appsを生成する例
|
||||
## Webアプリを生成する例
|
||||
|
||||
### ローカルからのPython
|
||||
|
||||
@@ -286,7 +286,7 @@ az webapp up --runtime PYTHON:3.9 --sku B1 --logs
|
||||
SCMポータルにログインするか、FTP経由でログインすると、`/wwwroot`にウェブアプリのコードを含む圧縮ファイル`output.tar.gz`が表示されます。
|
||||
|
||||
> [!TIP]
|
||||
> FTP経由で接続して`output.tar.gz`ファイルを変更するだけでは、ウェブアプリで実行されるコードを変更するには不十分です。
|
||||
> FTP経由で接続し、ファイル`output.tar.gz`を変更するだけでは、ウェブアプリで実行されるコードを変更するには不十分です。
|
||||
|
||||
**攻撃者はこのファイルをダウンロードし、変更して再アップロードすることで、ウェブアプリで任意のコードを実行することができます。**
|
||||
|
||||
@@ -301,7 +301,7 @@ SCMポータルにログインするか、FTP経由でログインすると、`/
|
||||
前のケースと同様に、SCMポータルにログインするか、FTP経由でログインすると、`/wwwroot`にウェブアプリのコードを含む圧縮ファイル`output.tar.gz`が表示されます。
|
||||
|
||||
> [!TIP]
|
||||
> FTP経由で接続して`output.tar.gz`ファイルを変更し、デプロイメントを再トリガーするだけでは、ウェブアプリで実行されるコードを変更するには不十分です。
|
||||
> FTP経由で接続し、ファイル`output.tar.gz`を変更してデプロイメントを再トリガーするだけでは、ウェブアプリで実行されるコードを変更するには不十分です。
|
||||
|
||||
## 特権昇格
|
||||
|
||||
|
||||
@@ -26,8 +26,8 @@ GCPハッキングを学び、実践する:<img src="../../../.gitbook/assets/
|
||||
**環境**: Azure Cloud Shellは、クラウドインフラストラクチャ用に設計されたMicrosoft独自のLinuxディストリビューションであるAzure Linux上で実行されることにより、安全な環境を提供します。Azure Linuxリポジトリに含まれるすべてのパッケージは、サプライチェーン攻撃から守るためにMicrosoftによって内部的にコンパイルされています。
|
||||
**プリインストールツール**: Cloud Shellには、Azure CLI、Azure PowerShell、Terraform、Docker CLI、Ansible、Git、vim、nano、emacsなどのテキストエディタなど、包括的なプリインストールツールセットが含まれています。これらのツールはすぐに使用できます。インストールされたパッケージとモジュールをリストするには、「Get-Module -ListAvailable」、「tdnf list」、「pip3 list」を使用できます。
|
||||
**$HOMEの永続性**: Azure Cloud Shellを初めて起動するとき、ストレージアカウントを添付するかしないかを選択できます。ストレージを添付しないことを選択すると、セッションが終了するとファイルが削除される一時的なセッションが作成されます。セッション間でファイルを保持するには、ストレージアカウントをマウントし、これが自動的に**$HOME\clouddrive**として添付され、**$HOME**ディレクトリはAzure File Shareに**.img**ファイルとして保存されます。ただし、$HOME外のファイルとマシンの状態は保持されません。SSHキーなどの秘密を安全に保存するには、Azure Key Vaultを使用してください。
|
||||
**Azureドライブ (Azure:)**: Azure Cloud ShellのPowerShellには、Azureリソース(Compute、Network、Storageなど)をファイルシステムのようなコマンドを使用して簡単にナビゲートできるAzureドライブ(Azure:)が含まれています。cd Azure:でAzureドライブに切り替え、cd ~でホームディレクトリに戻ります。どのドライブからでもリソースを管理するためにAzure PowerShellコマンドレットを使用することもできます。
|
||||
**カスタムツールのインストール**: ストレージアカウントでCloud Shellを構成するユーザーは、ルート権限を必要としない追加のツールをインストールできます。この機能により、Cloud Shell環境のさらなるカスタマイズが可能になり、ユーザーは特定のニーズに合わせてセットアップを調整できます。
|
||||
**Azureドライブ (Azure:)**: Azure Cloud ShellのPowerShellにはAzureドライブ (Azure:)が含まれており、ファイルシステムのようなコマンドを使用してCompute、Network、StorageなどのAzureリソースを簡単にナビゲートできます。cd Azure:でAzureドライブに切り替え、cd ~でホームディレクトリに戻ります。どのドライブからでもAzure PowerShellコマンドレットを使用してリソースを管理できます。
|
||||
**カスタムツールのインストール**: ストレージアカウントでCloud Shellを構成したユーザーは、ルート権限を必要としない追加のツールをインストールできます。この機能により、Cloud Shell環境のさらなるカスタマイズが可能になり、ユーザーは特定のニーズに合わせてセットアップを調整できます。
|
||||
|
||||
## 参考文献
|
||||
|
||||
|
||||
@@ -17,11 +17,11 @@ Learn & practice GCP Hacking: <img src="../../../.gitbook/assets/image (2) (1).p
|
||||
|
||||
## Azure CosmosDB
|
||||
|
||||
**Azure Cosmos DB** は、単一桁のミリ秒応答時間、自動スケーラビリティ、エンタープライズグレードのセキュリティを備えた SLA バックの可用性を提供する完全に **管理された NoSQL、リレーショナル、ベクターデータベース** です。これは、ターンキーのマルチリージョンデータ配信、オープンソースの API、人気のある言語用の SDK、統合ベクターサポートやシームレスな Azure AI 統合などの AI データベース機能を通じて、アプリ開発を加速します。
|
||||
**Azure Cosmos DB** は、単一桁ミリ秒の応答時間、自動スケーラビリティ、エンタープライズグレードのセキュリティを備えた SLA に裏打ちされた可用性を提供する完全に **管理された NoSQL、リレーショナル、ベクターデータベース** です。これは、ターンキーのマルチリージョンデータ配信、オープンソースの API、人気のある言語用の SDK、統合ベクターサポートやシームレスな Azure AI 統合などの AI データベース機能を通じて、アプリ開発を加速します。
|
||||
|
||||
Azure Cosmos DB は、ドキュメント、リレーショナル、キー-バリュー、グラフ、カラムファミリーデータモデルを使用して現実のデータをモデル化するための複数のデータベース API を提供します。これらの API は NoSQL、MongoDB、PostgreSQL、Cassandra、Gremlin、Table です。
|
||||
|
||||
CosmosDB の重要な側面の一つは Azure Cosmos アカウントです。**Azure Cosmos アカウント** は、データベースへのエントリーポイントとして機能します。このアカウントは、グローバル配信、一貫性レベル、使用する特定の API(NoSQL など)などの主要な設定を決定します。アカウントを通じて、データが複数のリージョンで低遅延アクセスのために利用可能であることを保証するグローバルレプリケーションを構成できます。さらに、パフォーマンスとデータの正確性のバランスを取る一貫性レベルを選択でき、強い一貫性から最終的な一貫性までのオプションがあります。
|
||||
CosmosDB の重要な側面の 1 つは Azure Cosmos アカウントです。**Azure Cosmos アカウント** は、データベースへのエントリポイントとして機能します。このアカウントは、グローバル配信、一貫性レベル、使用する特定の API(NoSQL など)などの主要な設定を決定します。アカウントを通じて、データが複数のリージョンで利用可能であることを保証するためにグローバルレプリケーションを構成できます。さらに、パフォーマンスとデータの正確性のバランスを取る一貫性レベルを選択でき、強い一貫性から最終的な一貫性までのオプションがあります。
|
||||
|
||||
### NoSQL (sql)
|
||||
Azure Cosmos DB NoSQL API は、JSON をデータ形式として使用するドキュメントベースの API です。これは、JSON オブジェクトをクエリするための SQL に似たクエリ構文を提供し、構造化データおよび半構造化データの操作に適しています。サービスのエンドポイントは次のとおりです:
|
||||
@@ -36,7 +36,7 @@ https://<Account-Name>.documents.azure.com:443/
|
||||
アカウント内では、1つ以上のデータベースを作成でき、これらはコンテナの論理的なグループとして機能します。データベースは、リソース管理とユーザー権限の境界として機能します。データベースは、コンテナ間でプロビジョニングされたスループットを共有するか、個々のコンテナに専用のスループットを割り当てることができます。
|
||||
|
||||
#### コンテナ
|
||||
データストレージのコアユニットはコンテナであり、JSONドキュメントを保持し、効率的なクエリのために自動的にインデックスが付けられます。コンテナは弾力的にスケーラブルで、ユーザー定義のパーティションキーによって決定されるパーティション全体に分散されます。パーティションキーは、最適なパフォーマンスと均等なデータ分配を確保するために重要です。たとえば、コンテナは顧客データを保存し、「customerId」をパーティションキーとして使用することがあります。
|
||||
データストレージのコアユニットはコンテナであり、JSONドキュメントを保持し、効率的なクエリのために自動的にインデックスが付けられます。コンテナは弾力的にスケーラブルで、ユーザー定義のパーティションキーによって決定されるパーティションに分散されています。パーティションキーは、最適なパフォーマンスと均等なデータ分配を確保するために重要です。たとえば、コンテナは顧客データを保存し、「customerId」をパーティションキーとして使用することがあります。
|
||||
|
||||
#### 列挙
|
||||
|
||||
@@ -173,7 +173,7 @@ print(item)
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
接続を確立する別の方法は、**DefaultAzureCredential()**を使用することです。権限を持つアカウントでログイン(az login)し、それを実行するだけです。この場合、必要な権限を与える役割の割り当てを行う必要があります(詳細については参照してください)。
|
||||
接続を確立する別の方法は、**DefaultAzureCredential()**を使用することです。権限を持つアカウントでログイン(az login)し、それを実行するだけです。この場合、必要な権限を与える役割の割り当てを行う必要があります(詳細については参照)。
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```python
|
||||
@@ -203,7 +203,7 @@ print("Document inserted.")
|
||||
{% endcode %}
|
||||
|
||||
### MongoDB
|
||||
MongoDB NoSQL APIは、JSONに似たBSON(Binary JSON)をデータ形式として使用するドキュメントベースのAPIです。これは、集約機能を持つクエリ言語を提供し、構造化データ、半構造化データ、および非構造化データの処理に適しています。サービスのエンドポイントは通常、次の形式に従います:
|
||||
MongoDB NoSQL APIは、データ形式としてJSONに似たBSON(Binary JSON)を使用するドキュメントベースのAPIです。これは、集約機能を持つクエリ言語を提供し、構造化データ、半構造化データ、および非構造化データの処理に適しています。サービスのエンドポイントは通常、次の形式に従います:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
## 基本情報
|
||||
|
||||
**Azure Function Apps** は **サーバーレスコンピューティングサービス** であり、基盤となるインフラストラクチャを管理することなく、**関数**と呼ばれる小さなコードの断片を実行することを可能にします。これらは、**HTTPリクエスト、タイマー、またはBlob StorageやEvent Hubsなどの他のAzureサービスからのイベント**に応じてコードを実行するように設計されています。Function AppsはC#、Python、JavaScript、Javaなど複数のプログラミング言語をサポートしており、**イベント駆動型アプリケーション**の構築、ワークフローの自動化、サービスの統合に適しています。通常、コードが実行されるときに使用されたコンピューティング時間に対してのみ支払うため、コスト効率が高いです。
|
||||
**Azure Function Apps** は **サーバーレスコンピューティングサービス** で、基盤となるインフラを管理することなく、**関数**と呼ばれる小さなコードの断片を実行できます。これらは、**HTTPリクエスト、タイマー、またはBlob StorageやEvent Hubsなどの他のAzureサービスからのイベント**に応じてコードを実行するように設計されています。Function AppsはC#、Python、JavaScript、Javaなど複数のプログラミング言語をサポートしており、**イベント駆動型アプリケーション**の構築、ワークフローの自動化、サービスの統合に適しています。通常、コードが実行されるときに使用されたコンピューティング時間に対してのみ支払うため、コスト効率が高いです。
|
||||
|
||||
> [!NOTE]
|
||||
> **FunctionsはApp Servicesのサブセット**であるため、ここで説明される多くの機能はAzure Apps(CLIでは`webapp`)として作成されたアプリケーションでも使用されます。
|
||||
@@ -13,13 +13,13 @@
|
||||
|
||||
- **Flex Consumption Plan**: **動的でイベント駆動型のスケーリング**を提供し、需要に応じて関数インスタンスを追加または削除する従量課金制です。**仮想ネットワーキング**と**事前プロビジョニングされたインスタンス**をサポートし、コールドスタートを減少させ、コンテナサポートを必要としない**変動するワークロード**に適しています。
|
||||
- **Traditional Consumption Plan**: デフォルトのサーバーレスオプションで、**関数が実行されるときのみコンピューティングリソースに対して支払います**。受信イベントに基づいて自動的にスケールし、**コールドスタートの最適化**が含まれていますが、コンテナデプロイメントはサポートしていません。自動スケーリングを必要とする**断続的なワークロード**に最適です。
|
||||
- **Premium Plan**: **一貫したパフォーマンス**を提供するように設計されており、コールドスタートを排除するための**事前ウォームされたワーカー**を備えています。**拡張実行時間、仮想ネットワーキング**を提供し、**カスタムLinuxイメージ**をサポートしており、高パフォーマンスと高度な機能を必要とする**ミッションクリティカルなアプリケーション**に最適です。
|
||||
- **Dedicated Plan**: 専用の仮想マシン上で実行され、**予測可能な請求**を提供し、手動または自動スケーリングをサポートします。同じプランで複数のアプリを実行でき、**コンピューティングの隔離**を提供し、App Service Environmentsを介して**安全なネットワークアクセス**を確保し、一貫したリソース割り当てを必要とする**長時間実行されるアプリケーション**に最適です。
|
||||
- **Container Apps**: **コンテナ化された関数アプリ**を管理された環境でデプロイすることを可能にし、マイクロサービスやAPIと共に使用できます。カスタムライブラリ、レガシーアプリの移行、**GPU処理**をサポートし、Kubernetesクラスターの管理を排除します。**イベント駆動型でスケーラブルなコンテナ化されたアプリケーション**に最適です。
|
||||
- **Premium Plan**: **一貫したパフォーマンス**のために設計されており、コールドスタートを排除するための**事前ウォームされたワーカー**を提供します。**拡張実行時間、仮想ネットワーキング**を提供し、**カスタムLinuxイメージ**をサポートしており、高パフォーマンスと高度な機能を必要とする**ミッションクリティカルなアプリケーション**に最適です。
|
||||
- **Dedicated Plan**: 専用の仮想マシン上で実行され、**予測可能な請求**を提供し、手動または自動スケーリングをサポートします。同じプランで複数のアプリを実行でき、**コンピューティングの隔離**を提供し、App Service Environmentsを介して**安全なネットワークアクセス**を確保します。これは、リソースの一貫した割り当てが必要な**長時間実行されるアプリケーション**に最適です。
|
||||
- **Container Apps**: **コンテナ化された関数アプリ**を管理された環境でデプロイでき、マイクロサービスやAPIと共に使用できます。カスタムライブラリ、レガシーアプリの移行、**GPU処理**をサポートし、Kubernetesクラスターの管理を排除します。**イベント駆動型でスケーラブルなコンテナ化されたアプリケーション**に最適です。
|
||||
|
||||
### **ストレージバケット**
|
||||
|
||||
コンテナ化されていない新しいFunction Appを作成する際、**コードとその他のFunction関連データはストレージアカウントに保存されます**。デフォルトでは、Webコンソールはコードを保存するために関数ごとに新しいものを作成します。
|
||||
新しいFunction Appをコンテナ化せずに作成する場合(実行するコードを提供する場合)、**コードとその他のFunction関連データはストレージアカウントに保存されます**。デフォルトでは、Webコンソールはコードを保存するために関数ごとに新しいものを作成します。
|
||||
|
||||
さらに、バケット内のコードを変更すると(保存されるさまざまな形式で)、**アプリのコードは新しいものに変更され、次回Functionが呼び出されると実行されます**。
|
||||
|
||||
@@ -28,15 +28,15 @@
|
||||
>
|
||||
> これについては**権限昇格セクション**で詳しく説明します。
|
||||
|
||||
ストレージアカウント内のコンテナ **`azure-webjobs-secrets`** に、フォルダ **`<app-name>`** 内のJSONファイルに保存されている**マスターキーと関数キー**を見つけることも可能です。
|
||||
ストレージアカウント内のコンテナ**`azure-webjobs-secrets`**に、フォルダ**`<app-name>`**内のJSONファイルに保存されている**マスターキーと関数キー**を見つけることも可能です。
|
||||
|
||||
Functionsは、リモートロケーションにコードを保存することも可能で、URLを指定するだけで済みます。
|
||||
Functionsは、リモートの場所にコードを保存することも可能で、そのURLを指定するだけです。
|
||||
|
||||
### ネットワーキング
|
||||
|
||||
HTTPトリガーを使用する場合:
|
||||
HTTPトリガーを使用すると:
|
||||
|
||||
- **インターネット全体から関数へのアクセスを提供**することが可能で、認証を必要としないか、IAMベースのアクセスを提供することができます。ただし、このアクセスを制限することも可能です。
|
||||
- **インターネット全体から関数へのアクセスを提供**することが可能で、認証を必要としないか、IAMベースのアクセスを提供できます。ただし、このアクセスを制限することも可能です。
|
||||
- **内部ネットワーク(VPC)**からFunction Appへのアクセスを**提供または制限**することも可能です。
|
||||
|
||||
> [!CAUTION]
|
||||
@@ -44,15 +44,15 @@ HTTPトリガーを使用する場合:
|
||||
|
||||
### **Function Appの設定と環境変数**
|
||||
|
||||
アプリ内で環境変数を設定することが可能で、これには機密情報が含まれる可能性があります。さらに、デフォルトで環境変数 **`AzureWebJobsStorage`** と **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`**(他にもいくつか)が作成されます。これらは特に興味深いもので、**アプリケーションのデータを含むストレージアカウントを完全に制御するためのアカウントキーを含んでいます**。これらの設定は、ストレージアカウントからコードを実行するためにも必要です。
|
||||
アプリ内で環境変数を構成することが可能で、これには機密情報が含まれる場合があります。さらに、デフォルトで環境変数**`AzureWebJobsStorage`**と**`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`**(他にもいくつか)が作成されます。これらは特に興味深いもので、**アプリケーションのデータを含むストレージアカウントを完全に制御するためのアカウントキーを含んでいます**。これらの設定は、ストレージアカウントからコードを実行するためにも必要です。
|
||||
|
||||
これらの環境変数や設定パラメータは、Functionがコードを実行する方法も制御します。たとえば、**`WEBSITE_RUN_FROM_PACKAGE`** が存在する場合、アプリケーションのコードがあるURLを示します。
|
||||
これらの環境変数や構成パラメータは、Functionがコードを実行する方法も制御します。たとえば、**`WEBSITE_RUN_FROM_PACKAGE`**が存在する場合、アプリケーションのコードがあるURLを示します。
|
||||
|
||||
### **Function Sandbox**
|
||||
|
||||
Linuxサンドボックス内では、ソースコードは **`/home/site/wwwroot`** にあり、ファイル **`function_app.py`**(Pythonを使用している場合)に格納されています。コードを実行するユーザーは **`app`** で、sudo権限はありません。
|
||||
Linuxサンドボックス内では、ソースコードは**`/home/site/wwwroot`**のファイル**`function_app.py`**(Pythonを使用している場合)にあります。コードを実行するユーザーは**`app`**(sudo権限なし)です。
|
||||
|
||||
**Windows**関数でNodeJSを使用している場合、コードは **`C:\home\site\wwwroot\HttpTrigger1\index.js`** にあり、ユーザー名は **`mawsFnPlaceholder8_f_v4_node_20_x86`** で、**グループ**には `Mandatory Label\High Mandatory Level Label`、`Everyone`、`BUILTIN\Users`、`NT AUTHORITY\INTERACTIVE`、`CONSOLE LOGON`、`NT AUTHORITY\Authenticated Users`、`NT AUTHORITY\This Organization`、`BUILTIN\IIS_IUSRS`、`LOCAL`、`10-30-4-99\Dwas Site Users` が含まれていました。
|
||||
**Windows**関数でNodeJSを使用している場合、コードは**`C:\home\site\wwwroot\HttpTrigger1\index.js`**にあり、ユーザー名は**`mawsFnPlaceholder8_f_v4_node_20_x86`**で、**グループ**には`Mandatory Label\High Mandatory Level Label`、`Everyone`、`BUILTIN\Users`、`NT AUTHORITY\INTERACTIVE`、`CONSOLE LOGON`、`NT AUTHORITY\Authenticated Users`、`NT AUTHORITY\This Organization`、`BUILTIN\IIS_IUSRS`、`LOCAL`、`10-30-4-99\Dwas Site Users`が含まれていました。
|
||||
|
||||
### **管理されたIDとメタデータ**
|
||||
|
||||
@@ -69,12 +69,12 @@ Linuxサンドボックス内では、ソースコードは **`/home/site/wwwroo
|
||||
|
||||
{% embed url="https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html#azure-vm" %}
|
||||
|
||||
関数に添付されている**すべての管理されたIDを確認する方法を見つける必要がある**ことに注意してください。指定しない場合、メタデータエンドポイントは**デフォルトのもののみを使用します**(詳細については前のリンクを確認してください)。
|
||||
関数に添付されている**すべての管理されたIDを確認する方法**を見つける必要があることに注意してください。指定しない場合、メタデータエンドポイントは**デフォルトのもののみを使用します**(詳細については前のリンクを確認してください)。
|
||||
|
||||
## アクセスキー
|
||||
|
||||
> [!NOTE]
|
||||
> ユーザーが関数を呼び出すためのアクセスを与えるRBAC権限は存在しないことに注意してください。**関数の呼び出しは、作成時に選択されたトリガーに依存します**。HTTPトリガーが選択された場合、**アクセスキー**を使用する必要があるかもしれません。
|
||||
> ユーザーに関数を呼び出すアクセスを与えるためのRBAC権限はありません。**関数の呼び出しは、作成時に選択されたトリガーに依存します**。HTTPトリガーが選択された場合、**アクセスキー**を使用する必要があるかもしれません。
|
||||
|
||||
HTTPトリガーを使用して関数内にエンドポイントを作成する際、関数をトリガーするために必要な**アクセスキーの認証レベル**を指定することが可能です。3つのオプションがあります:
|
||||
|
||||
@@ -96,7 +96,7 @@ HTTPトリガーを使用して関数内にエンドポイントを作成する
|
||||
|
||||
### 基本認証
|
||||
|
||||
App Servicesと同様に、Functionsも**SCM**および**FTP**に接続してコードをデプロイするための基本認証をサポートしています。これは、Azureが提供する**ユーザー名とパスワードを含むURL**を使用します。詳細については以下を参照してください:
|
||||
App Servicesと同様に、Functionsも**SCM**および**FTP**に接続してコードをデプロイするための基本認証をサポートしています。これは、Azureが提供する**ユーザー名とパスワードを含むURL**を使用します。詳細については:
|
||||
|
||||
{{#ref}}
|
||||
az-app-services.md
|
||||
@@ -104,7 +104,7 @@ az-app-services.md
|
||||
|
||||
### Githubベースのデプロイメント
|
||||
|
||||
関数がGithubリポジトリから生成されると、Azure Webコンソールは**特定のリポジトリにGithubワークフローを自動的に作成する**ことを許可します。これにより、このリポジトリが更新されるたびに関数のコードが更新されます。実際、Python関数のGithub Action yamlは次のようになります:
|
||||
関数がGithubリポジトリから生成されると、Azure Webコンソールは**特定のリポジトリにGithubワークフローを自動的に作成**することを許可します。これにより、このリポジトリが更新されるたびに関数のコードが更新されます。実際、Python関数のGithub Action YAMLは次のようになります:
|
||||
|
||||
<details>
|
||||
|
||||
|
||||
@@ -4,14 +4,14 @@
|
||||
|
||||
## 基本情報
|
||||
|
||||
Azure Logic Appsは、Microsoft Azureが提供するクラウドベースのサービスで、開発者が**さまざまなサービス、データソース、アプリケーションを統合するワークフローを作成および実行**できるようにします。これらのワークフローは、**ビジネスプロセスを自動化**し、タスクを調整し、異なるプラットフォーム間でデータ統合を実行するように設計されています。
|
||||
Azure Logic Appsは、Microsoft Azureが提供するクラウドベースのサービスで、開発者が**さまざまなサービス**、データソース、アプリケーションを統合するワークフローを**作成および実行**できるようにします。これらのワークフローは、**ビジネスプロセスを自動化**し、タスクを調整し、異なるプラットフォーム間でデータ統合を行うように設計されています。
|
||||
|
||||
Logic Appsは、**幅広い事前構築されたコネクタ**を使用してワークフローを作成するためのビジュアルデザイナーを提供しており、Office 365、Dynamics CRM、Salesforceなどのさまざまなサービスに簡単に接続して対話できます。また、特定のニーズに合わせたカスタムコネクタを作成することもできます。
|
||||
|
||||
### 例
|
||||
|
||||
- **データパイプラインの自動化**: Logic Appsは、Azure Data Factoryと組み合わせて**データ転送および変換プロセスを自動化**できます。これは、Azure SQL DatabaseやAzure Blob Storageなどのさまざまなデータストア間でデータを移動および変換するスケーラブルで信頼性の高いデータパイプラインを作成するのに役立ち、分析およびビジネスインテリジェンス操作を支援します。
|
||||
- **Azure Functionsとの統合**: Logic Appsは、Azure Functionsと連携して、**必要に応じてスケールする洗練されたイベント駆動型アプリケーションを開発**し、他のAzureサービスとシームレスに統合できます。使用例としては、Logic Appを使用して、Azure Storageアカウントの変更などの特定のイベントに応じてAzure Functionをトリガーすることが挙げられ、動的なデータ処理を可能にします。
|
||||
- **データパイプラインの自動化**: Logic Appsは、Azure Data Factoryと組み合わせて**データ転送および変換プロセス**を自動化できます。これは、Azure SQL DatabaseやAzure Blob Storageなどのさまざまなデータストア間でデータを移動および変換するスケーラブルで信頼性の高いデータパイプラインを作成するのに役立ち、分析およびビジネスインテリジェンスの操作を支援します。
|
||||
- **Azure Functionsとの統合**: Logic Appsは、Azure Functionsと連携して、**必要に応じてスケールする洗練されたイベント駆動型アプリケーションを開発**し、他のAzureサービスとシームレスに統合できます。使用例としては、Logic Appを使用して、Azure Storageアカウントの変更などの特定のイベントに応じてAzure Functionをトリガーし、動的なデータ処理を可能にすることが挙げられます。
|
||||
|
||||
### LogicAPPの可視化
|
||||
|
||||
@@ -23,7 +23,7 @@ Logic Appsは、**幅広い事前構築されたコネクタ**を使用してワ
|
||||
|
||||
### SSRF保護
|
||||
|
||||
**Logic AppがSSRFに対して脆弱である**ことがわかっても、Logic Appsはそれを許可しないため、メタデータから資格情報にアクセスすることはできません。
|
||||
たとえ**Logic AppがSSRFに対して脆弱であっても**、Logic Appsはそれを許可しないため、メタデータから資格情報にアクセスすることはできません。
|
||||
|
||||
たとえば、次のようなものはトークンを返しません:
|
||||
```bash
|
||||
@@ -35,10 +35,10 @@ curl -XPOST 'https://prod-44.westus.logic.azure.com:443/workflows/2d8de4be6e9741
|
||||
いくつかのホスティングオプションがあります:
|
||||
|
||||
* **消費型**
|
||||
- **マルチテナント**:共有コンピューティングリソースを提供し、パブリッククラウドで運営され、操作ごとの料金モデルに従います。これは軽量でコスト効果の高いワークロードに最適です。
|
||||
- **マルチテナント**:共有コンピューティングリソースを提供し、パブリッククラウドで運用され、操作ごとの料金モデルに従います。これは軽量でコスト効果の高いワークロードに最適です。
|
||||
* **スタンダード**
|
||||
- **ワークフローサービスプラン**:ネットワーキングのためのVNET統合を持つ専用コンピューティングリソースで、ワークフローサービスプランインスタンスごとに料金が発生します。これは、より高い制御を必要とする要求の厳しいワークロードに適しています。
|
||||
- **アプリサービス環境V3**:完全な隔離とスケーラビリティを持つ専用コンピューティングリソースです。また、ネットワーキングのためにVNETと統合され、環境内のアプリサービスインスタンスに基づく料金モデルを使用します。これは、高い隔離が必要なエンタープライズ規模のアプリケーションに最適です。
|
||||
- **アプリサービス環境V3**:完全な隔離とスケーラビリティを持つ専用コンピューティングリソースです。また、ネットワーキングのためにVNETと統合され、環境内のアプリサービスインスタンスに基づく料金モデルを使用します。これは、高い隔離を必要とするエンタープライズ規模のアプリケーションに最適です。
|
||||
- **ハイブリッド**:ローカル処理とマルチクラウドサポートのために設計されています。顧客管理のコンピューティングリソースをローカルネットワークアクセスと共に提供し、Kubernetes Event-Driven Autoscaling (KEDA)を利用します。
|
||||
|
||||
### 列挙
|
||||
@@ -152,7 +152,7 @@ Get-AzLogicAppTriggerHistory -ResourceGroupName "<ResourceGroupName>" -Name "<Lo
|
||||
* 証明書:メッセージの暗号化と署名のための証明書を扱い、安全な通信を確保します。
|
||||
* パートナー:B2B取引のための取引先情報を管理し、シームレスな統合を可能にします。
|
||||
* 合意:取引先とのデータ交換のためのルールと設定を構成します(例:EDI、AS2)。
|
||||
* バッチ構成:メッセージを効率的にグループ化して処理するためのバッチ処理構成を管理します。
|
||||
* バッチ構成:メッセージを効率的にグループ化および処理するためのバッチ処理構成を管理します。
|
||||
* RosettaNet PIP:B2B通信を標準化するためのRosettaNetパートナーインターフェースプロセス(PIP)を構成します。
|
||||
|
||||
#### 列挙
|
||||
|
||||
@@ -4,11 +4,11 @@
|
||||
|
||||
## Service Bus
|
||||
|
||||
Azure Service Busは、アプリケーションの異なる部分または別のアプリケーション間での信頼性のある**通信を可能にするために設計された**クラウドベースの**メッセージングサービス**です。これは、安全な仲介者として機能し、送信者と受信者が同時に操作していなくても、メッセージが安全に配信されることを保証します。システムを分離することで、アプリケーションは独立して動作しながら、データや指示を交換することができます。これは、複数のワーカー間での負荷分散、信頼性のあるメッセージ配信、または順序通りのタスク処理や安全なアクセス管理など、複雑な調整が必要なシナリオに特に役立ちます。
|
||||
Azure Service Busは、アプリケーションの異なる部分または別々のアプリケーション間での信頼性のある**通信を可能にするために設計された**クラウドベースの**メッセージングサービス**です。これは、安全な仲介者として機能し、送信者と受信者が同時に動作していなくてもメッセージが安全に配信されることを保証します。システムを分離することで、アプリケーションは独立して動作しながらデータや指示を交換できます。これは、複数のワーカー間での負荷分散、信頼性のあるメッセージ配信、または順序通りのタスク処理やアクセスの安全な管理など、特に複雑な調整が必要なシナリオに役立ちます。
|
||||
|
||||
### Key Concepts
|
||||
|
||||
1. **キュー:** 受信者が準備できるまでメッセージを保存することを目的としています。
|
||||
1. **キュー:** 受信者が準備ができるまでメッセージを保存することを目的としています。
|
||||
- メッセージは順序付けられ、タイムスタンプが付けられ、耐久性のあるストレージに保存されます。
|
||||
- プルモード(オンデマンド取得)で配信されます。
|
||||
- ポイントツーポイント通信をサポートします。
|
||||
|
||||
@@ -9,15 +9,15 @@ Azure Static Web Appsは、**GitHubなどのリポジトリからの自動CI/CD
|
||||
### デプロイ認証
|
||||
|
||||
> [!TIP]
|
||||
> Static Appが作成されると、**デプロイ認証ポリシー**として**デプロイトークン**と**GitHub Actionsワークフロー**の間で選択できます。
|
||||
> Static Appが作成されると、**デプロイ認証ポリシー**として**デプロイメントトークン**と**GitHub Actionsワークフロー**の間で選択できます。
|
||||
|
||||
- **デプロイトークン**: トークンが生成され、デプロイプロセスを認証するために使用されます。**このトークンを持っている人は、新しいバージョンのアプリをデプロイするのに十分です**。リポジトリにトークンを秘密として持つ**Github Actionが自動的にデプロイされ**、リポジトリが更新されるたびにアプリの新しいバージョンをデプロイします。
|
||||
- **デプロイメントトークン**: トークンが生成され、デプロイプロセスを認証するために使用されます。**このトークンを持つ人は、新しいバージョンのアプリをデプロイするのに十分です**。リポジトリにトークンを秘密として持つ**Github Actionが自動的にデプロイされ**、リポジトリが更新されるたびに新しいバージョンのアプリをデプロイします。
|
||||
- **GitHub Actionsワークフロー**: この場合、非常に似たGithub Actionもリポジトリにデプロイされ、**トークンも秘密に保存されます**。ただし、このGithub Actionには違いがあり、**`actions/github-script@v6`**アクションを使用してリポジトリのIDTokenを取得し、それを使用してアプリをデプロイします。
|
||||
- 両方のケースでアクション**`Azure/static-web-apps-deploy@v1`**が`azure_static_web_apps_api_token`パラメータのトークンと共に使用されますが、2番目のケースでは、`github_id_token`パラメータのIDTokenで認証が行われるため、`12345cbb198a77a092ff885781a62a15d51ef5e3654ca11234509ab54547270704-4140ccee-e04f-424f-b4ca-3d4dd123459c00f0702071d12345`のような有効な形式のランダムトークンがアプリをデプロイするのに十分です。
|
||||
- 両方のケースでアクション**`Azure/static-web-apps-deploy@v1`**が`azure_static_web_apps_api_token`パラメータのトークンと共に使用されますが、2番目のケースでは、`github_id_token`パラメータのIDTokenで認証が行われるため、`12345cbb198a77a092ff885781a62a15d51ef5e3654ca11234509ab54547270704-4140ccee-e04f-424f-b4ca-3d4dd123459c00f0702071d12345`のような有効な形式のランダムトークンだけでアプリをデプロイするのに十分です。
|
||||
|
||||
### Webアプリ基本認証
|
||||
|
||||
Webアプリにアクセスするための**パスワードを設定する**ことが可能です。Webコンソールでは、ステージング環境のみ、またはステージングと本番の両方を保護するように設定できます。
|
||||
Webアプリにアクセスするための**パスワードを設定する**ことが可能です。Webコンソールでは、ステージング環境のみ、またはステージングと本番環境の両方を保護するように設定できます。
|
||||
|
||||
執筆時点でパスワード保護されたWebアプリは次のようになります:
|
||||
|
||||
@@ -71,9 +71,9 @@ az rest --method GET \
|
||||
|
||||
### マネージドアイデンティティ
|
||||
|
||||
Azure Static Web Appsは**マネージドアイデンティティ**を使用するように構成できますが、[このFAQ](https://learn.microsoft.com/en-gb/azure/static-web-apps/faq#does-static-web-apps-support-managed-identity-)で述べられているように、認証目的でAzure Key Vaultからシークレットを**抽出するため**のサポートのみが提供されています。他のAzureリソースにアクセスするためのサポートはありません。
|
||||
Azure Static Web Appsは**マネージドアイデンティティ**を使用するように構成できますが、[このFAQ](https://learn.microsoft.com/en-gb/azure/static-web-apps/faq#does-static-web-apps-support-managed-identity-)で述べられているように、認証目的でAzure Key Vaultからシークレットを**抽出するためにのみサポートされています。他のAzureリソースにアクセスするためではありません**。
|
||||
|
||||
詳細については、Azureガイドで静的アプリでのボールトシークレットの使用方法を確認できます:https://learn.microsoft.com/en-us/azure/static-web-apps/key-vault-secrets。
|
||||
詳細については、Azureガイドで静的アプリでボールトシークレットを使用する方法を確認できます:https://learn.microsoft.com/en-us/azure/static-web-apps/key-vault-secrets。
|
||||
|
||||
## 列挙
|
||||
|
||||
@@ -168,7 +168,7 @@ Get-AzStaticWebAppUserProvidedFunctionApp -ResourceGroupName <ResourceGroupName>
|
||||
|
||||
以下のリンクでウェブアプリを生成する良い例を見つけることができます: [https://learn.microsoft.com/en-us/azure/static-web-apps/get-started-portal?tabs=react&pivots=github](https://learn.microsoft.com/en-us/azure/static-web-apps/get-started-portal?tabs=react&pivots=github)
|
||||
|
||||
1. リポジトリ https://github.com/staticwebdev/react-basic/generate をあなたのGitHubアカウントにフォークし、`my-first-static-web-app`と名付けます
|
||||
1. リポジトリ https://github.com/staticwebdev/react-basic/generate をあなたのGitHubアカウントにフォークし、`my-first-static-web-app`という名前を付けます
|
||||
2. AzureポータルでStatic Web Appを作成し、GitHubアクセスを設定し、先にフォークした新しいリポジトリを選択します
|
||||
3. 作成し、数分待って、新しいページを確認してください!
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
## 基本情報
|
||||
|
||||
**Azure Table Storage** は、大量の構造化された非リレーショナルデータを保存するために設計された NoSQL キー-バリューストアです。高い可用性、低遅延、およびスケーラビリティを提供し、大規模なデータセットを効率的に処理します。データはテーブルに整理され、各エンティティはパーティションキーと行キーによって識別され、迅速な検索を可能にします。データは静止時の暗号化、ロールベースのアクセス制御、および安全で管理されたストレージのための共有アクセス署名などの機能をサポートしており、幅広いアプリケーションに適しています。
|
||||
**Azure Table Storage** は、大量の構造化された非関係データを保存するために設計された NoSQL キー-バリューストアです。高い可用性、低遅延、およびスケーラビリティを提供し、大規模なデータセットを効率的に処理します。データはテーブルに整理され、各エンティティはパーティションキーと行キーによって識別され、迅速な検索を可能にします。データは静止時の暗号化、ロールベースのアクセス制御、および安全で管理されたストレージのための共有アクセス署名などの機能をサポートしており、幅広いアプリケーションに適しています。
|
||||
|
||||
テーブルストレージには**組み込みのバックアップメカニズムはありません**。
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
#### **その他のプロパティ (カスタムプロパティ)**
|
||||
|
||||
- PartitionKey と RowKey に加えて、エンティティはデータを保存するための追加の**カスタムプロパティを持つことができます**。これらはユーザー定義で、従来のデータベースの列のように機能します。
|
||||
- PartitionKey と RowKey に加えて、エンティティはデータを保存するための追加の**カスタムプロパティを持つことができます**。これらはユーザー定義であり、従来のデータベースの列のように機能します。
|
||||
- プロパティは**キー-バリューペア**として保存されます。
|
||||
- 例: `Name`、`Age`、`Title` は従業員のカスタムプロパティである可能性があります。
|
||||
|
||||
@@ -84,7 +84,7 @@ Get-AzStorageTableStoredAccessPolicy -Table <Table> -Context (Get-AzStorageAccou
|
||||
|
||||
## Privilege Escalation
|
||||
|
||||
ストレージのプライベートエスカレーションと同様です:
|
||||
ストレージの特権昇格と同様です:
|
||||
|
||||
{{#ref}}
|
||||
../az-privilege-escalation/az-storage-privesc.md
|
||||
|
||||
Reference in New Issue
Block a user