メインコンテンツへスキップ

ワンクリックオンボーディングで Azure アカウントを接続する

  • Azure アカウントを DoiT に接続するには、有効な Azure サブスクリプションが必要です。

  • Azure アカウントを接続するには、Cloud Intelligence の Enhanced または Enterprise プランが必要です。

  • ご利用料金は、ご契約条件に基づき、毎月のクラウド利用額に対するパーセンテージとして請求されます。

早期プレビュー

このガイドは、お客様の組織で One-click Azure onboarding が有効になっている場合にのみ適用されます。有効になっていない場合は、標準的な Azure オンボーディングガイドに従ってください。

One-click Azure onboarding は早期プレビュー版であり、DoiT のサポート SLA の対象外です。Admin ロールを持つユーザーは、Early access features ページから有効化できます。

機能に直接アクセスするには、次の URL の <customer-id> をお客様の DoiT カスタマー ID に置き換えてください。

https://console.doit.com/customers/<customer-id>/early-access-features?feature=CMP-49324

One-click Azure onboarding early access feature

必要な権限

DoiT アカウント側で必要なもの:

  • 早期アクセス機能を有効にするための Admin ロール

  • 請求データのアクセスを設定するための Billing Profile Admin 権限

Azure アカウント側で必要なもの:

  • Microsoft Entra ID に Cloud Intelligence エンタープライズアプリケーションを登録する権限

  • Deploy to Azure を使用するため、選択した管理グループに対する Owner ロール

  • あるいは、Azure Cloud Shell セットアップを使用するため、選択した管理グループでロール割り当てを作成する権限。Microsoft Entra グローバル管理者であれば、スクリプトで求められたときに明示的にアクセス権を昇格できます。

オンボーディングフローでは、Cloud Intelligence サービスプリンシパルに対し、1 つの管理グループで Reader ロールと Monitoring Reader ロールを付与します。テナントのルート管理グループに対する割り当ては、そのテナント内の現在および将来のすべてのサブスクリプションに継承されます。

請求エクスポートを設定するには、Azure アカウントに次の権限も必要です:

  • Microsoft.Resources/subscriptions/resourceGroups/write
  • Microsoft.Storage/storageAccounts/write
  • Microsoft.CostManagement/exports/write
  • Microsoft.Storage/storageAccounts/blobServices/containers/write
  • Microsoft.ManagedServices/registrationAssignments/write

Azure テナントを接続する

ウィザードを起動する

  1. DoiT console にサインインします。

  2. 接続ウィザードを起動します:

    • DoiT を初めて利用する場合は、ようこそページでクラウドプロバイダとして Microsoft Azure を選択します。

    • Home ページで Connect your cloud を見つけてから、Connect your Azure account を選択します。

    • Integrations catalogMicrosoft Azure インテグレーションを見つけ、Assets または Connect + を選択し、Connect new account を選択します。

ウィザードは 3 つのステップで構成されています。

ステップ 1: 機能を選択する

使用可能な Cloud Intelligence 機能は、すべてデフォルトで選択されています。有効にしたくない場合は Select All または個々の機能の選択を解除してから、Next を選択します。

Azure feature selection

ステップ 2: テナントを接続する

  1. Microsoft Entra テナント ID を入力します。確認するには、Azure Portal で Microsoft Entra ID > Overview を開き、Tenant ID をコピーします。

  2. Open Azure Cloud Shell (Bash) を選択します。

  3. DoiT コンソールで生成されたスクリプトをコピーし、Azure Cloud Shell に貼り付けて実行します。

    このスクリプトは、指定されたテナントにサインインし、Cloud Intelligence をエンタープライズアプリケーションとして登録します。アプリケーションがすでに登録されている場合でも、再実行して問題ありません。

  4. DoiT コンソールに戻り、Next を選択します。

Register Cloud Intelligence in an Azure tenant

ステップ 3: アクセス権を付与する

管理グループ ID には、テナント ID (テナントのルート管理グループの ID でもあります) が自動入力されています。このスコープにより、管理グループ配下のすべてのサブスクリプションに継承されるアクセス権が付与されるため、サブスクリプションごとに個別のオンボーディングを行う必要はありません。

別の管理グループを使用する場合は、自動入力された値をその管理グループの ID に置き換えてください。

Azure Portal でデプロイする

このオプションを使用するには、選択した管理グループに対する Owner ロールが必要です。

  1. Deploy to Azure を選択します。

  2. Azure Portal で、DoiT コンソールに表示されている ID と一致する管理グループを選択します。

  3. デプロイ先リージョンを選択します。管理グループおよびプリンシパル ID のパラメータは変更しないでください。

  4. Review + create を選択し、検証が成功したら Create を選択します。

  5. DoiT コンソールに戻ります。Azure Portal が別タブで開かれている間、自動的に権限の検証が続行されます。

Azure のロール割り当てが反映されるまで数分かかる場合があります。デプロイ完了後も機能が Pending のままの場合は、Test Connection を選択してください。

Azure Cloud Shell でセットアップする

管理グループに Owner ロールをまだ持っていない場合は、ガイド付きの Cloud Shell セットアップを使用します。

  1. Set up with Azure Cloud Shell を展開し、Open Azure Cloud Shell (Bash) を選択します。

  2. 生成されたスクリプトをコピーして実行します。

  3. ロール割り当ての作成が Azure によって拒否され、かつ自分が Microsoft Entra グローバル管理者である場合は、プロンプトが表示されたら ELEVATE と入力します。スクリプトは昇格されたアクセス権を要求し、Azure RBAC の反映を待機したうえで、欠けているロール割り当てのみを作成します。

  4. DoiT コンソールに戻り、選択したすべての機能が Connected と表示されるまで待ちます。すぐに確認するには Test Connection を選択します。

オンボーディングのためだけにアクセス権を昇格した場合は、セットアップ完了後に Microsoft Entra ID > PropertiesAccess management for Azure resources を無効にしてください。

Grant Cloud Intelligence access to Azure resources

請求書エクスポートを作成する

テナントを接続したら、Azure の請求データを DoiT にエクスポートします:

  1. Azure PortalCost Management を検索して選択し、請求スコープを選択します。

    ヒント

    正しい請求アカウントを選択していることを確認してください。請求アカウントのスコープ が複数のサブスクリプションを対象としている場合、それらすべての請求データが Azure ストレージにエクスポートされます。

  2. (任意) 請求エクスポートにタグを含めたい場合は、タグ継承を有効にします。

    有効にすると、リソースがタグをサポートしていない場合や、コストレポートにタグを渡さない場合でも、子リソースの使用状況レコードは、請求・リソースグループ・サブスクリプションのタグを継承します。詳細については、Tag support for Azure resourcesGroup and allocate costs using tag inheritance を参照してください。

    タグ継承を有効にすると、当月分の子リソースの使用状況レコードに対して、24 時間以内にタグが適用されます。

  3. 左側のナビゲーションメニューで Exports を検索して選択します。

  4. Create を選択し、Basics タブで Create your own export を選択します。

    1. 必須フィールドを入力します:

      • Type of data: Cost and usage details (actual) を選択します。
      • Export name: 例として BillingDataExport など、エクスポート名を入力します。
      • Dataset version: 2021-10-01 を選択します。
      • Frequency: Daily export of month-to-date costs を選択します。
    2. Add を選択し、Export prefix フィールドに DoiT と入力してから、Next を選択します。

  5. Destination タブで、必須フィールドを入力します:

    • Storage type: Azure blob storage を選択します。
    • Destination and storage: Use existing を選択します。
    • Subscription: ストレージアカウントを含むサブスクリプションを選択します。
    • Storage account: お客様の DoiT カスタマー ID にちなんで命名されたストレージアカウントを選択します。
    • Container: exportcontainer と入力します。
    • Directory: exportfiles と入力します。
    • Format: CSV を選択します。
    • Compression Type: None を選択します。
    • Overwrite data チェックボックスは選択したままにします。
  6. Next を選択します。

  7. Review + create タブで Create を選択します。

  8. Exports ページに戻り、今作成したエクスポートを選択してから Run now を選択し、エクスポートを実行して請求データを DoiT コンソールに送信します。

次のステップ

Azure アカウントの接続が完了すると、請求データの取り込みが開始されます。処理には、Azure 環境の規模と複雑さに応じて最大 24 時間かかる場合があります。データが Cloud Analytics やその他の DoiT 機能で利用可能になった時点で通知されます。

履歴データのバックフィル

DoiT は過去 12 か月分の Azure 請求データのバックフィルをサポートしています。履歴データをバックフィルするには、次の手順に従ってください。

  1. Azure ポータルから履歴データを取得します(詳細は Azure の履歴データに関するチュートリアル を参照してください)。

    1. 請求書エクスポートを作成します。必要なエクスポート設定については、Create a billing export を参照してください。

    2. エクスポートを保存したら、Exports ページに戻り、作成したエクスポートを選択します。

    3. Export selected dates を選択します。データは 1 か月ごとに取得できます。

  2. バックフィル用ファイルが、Create a billing export で使用したものと同じ Azure Blob Storage パスに配置されていることを確認します。

    たとえば、現在のエクスポートファイルが exportfiles/DoiT-BillingDataExport/20260101-20260131/ にある場合、バックフィル用フォルダは次のように整理してください。

    exportfiles/DoiT-BillingDataExport/20251201-20251231
    exportfiles/DoiT-BillingDataExport/20251101-20251130
    ...
  3. バックフィル用フォルダ内で、manifest.json ファイル内のデータパスを更新し、正しい Blob Storage フォルダを参照するようにします。

  4. CSV ファイルと manifest ファイルが正しく配置されたら、エキスパートへ問い合わせ を開き、バックフィルを依頼してください。

請求データの更新頻度

Azure の Cost Management exports は毎日更新されます。Azure のエクスポートと DoiT のインポートのタイミングによっては、変更内容が DoiT コンソールに反映されるまで最大 24 時間かかる場合があります。DoiT コンソール内では、Cloud Analytics(クラウド分析)が請求データを 1 時間ごとに更新します。

Azure Cost Management が使用状況データを受信する頻度については、Cost and usage data updates and retention を参照してください。

オフボーディング

DoiT の利用を継続しない場合は、次の手順を実行してください。

  1. Azure Cost Management で、オンボーディング時に作成した請求書エクスポートを削除し、DoiT への新しい請求データの送信を停止します。

  2. 以下の手順に従って、DoiT の Azure ロール割り当てを取り消します。

  3. DoiT コンソールで Azure 連携を開き、テナントを削除します。

請求書エクスポートを削除しても、既に Azure Blob Storage に保存されているデータは削除されません。そのデータは、自社の保持要件に従って保持または削除してください。

DoiT アクセスの取り消し

次のスクリプトは、特定の管理グループで DoiT のオンボーディングフローによって作成された ReaderMonitoring Reader のロール割り当てを削除します。他の Azure スコープでの Cloud Intelligence サービスプリンシパルとロール割り当ては維持されます。

注意

スクリプトを実行する前に、テナント ID と管理グループ ID が、削除したい Azure 接続のものと一致していることを確認してください。これらの割り当てを削除すると、その管理グループとその子孫から DoiT のアクセスが取り消されます。

  1. Azure Cloud Shell を開き、Bash を選択します。

  2. 次のスクリプトを貼り付け、<tenant-id><management-group-id> を置き換えてから実行します。テナントルートグループの場合、管理グループ ID はテナント ID です。

    #!/usr/bin/env bash
    set -euo pipefail

    TENANT_ID="<tenant-id>"
    MANAGEMENT_GROUP_ID="<management-group-id>"
    APP_ID="8b383837-44d3-4760-a8ec-eea170b29f68"
    MG_SCOPE="/providers/Microsoft.Management/managementGroups/$MANAGEMENT_GROUP_ID"

    az login --tenant "$TENANT_ID" --allow-no-subscriptions

    ACTIVE_TENANT_ID="$(az account show --query tenantId --output tsv)"
    if [[ "$ACTIVE_TENANT_ID" != "$TENANT_ID" ]]; then
    echo "The active Azure tenant does not match TENANT_ID."
    exit 1
    fi

    SP_ID="$(az ad sp show --id "$APP_ID" --query id --output tsv 2>/dev/null || true)"
    if [[ -z "$SP_ID" ]]; then
    echo "The Cloud Intelligence service principal does not exist in this tenant."
    exit 0
    fi

    ASSIGNMENTS_JSON="$(
    az role assignment list \
    --assignee-object-id "$SP_ID" \
    --fill-principal-name false \
    --scope "$MG_SCOPE" \
    --output json
    )"

    CANDIDATES_JSON="$(
    jq --arg scope "$MG_SCOPE" '
    [
    .[]
    | select((.scope | ascii_downcase) == ($scope | ascii_downcase))
    | select(
    (.roleDefinitionId | ascii_downcase | endswith("acdd72a7-3385-48ef-bd42-f606fba81ae7")) or
    (.roleDefinitionId | ascii_downcase | endswith("43d0d8ad-25c7-4714-9337-8ba259a9fe05"))
    )
    ]
    ' <<< "$ASSIGNMENTS_JSON"
    )"

    mapfile -t ASSIGNMENT_IDS < <(jq -r '.[].id' <<< "$CANDIDATES_JSON")

    if [[ "${#ASSIGNMENT_IDS[@]}" -eq 0 ]]; then
    echo "No DoiT onboarding role assignments were found at $MG_SCOPE."
    exit 0
    fi

    echo "Role assignments to remove:"
    jq -r '.[] | "\(.roleDefinitionName): \(.id)"' <<< "$CANDIDATES_JSON"

    read -r -p "Enter the tenant ID to confirm: " CONFIRMATION
    if [[ "$CONFIRMATION" != "$TENANT_ID" ]]; then
    echo "Confirmation did not match. No assignments were removed."
    exit 1
    fi

    for ASSIGNMENT_ID in "${ASSIGNMENT_IDS[@]}"; do
    az role assignment delete --ids "$ASSIGNMENT_ID"
    done

    echo "DoiT onboarding role assignments removed."

このスクリプトは Cloud Intelligence エンタープライズアプリケーション自体は削除しません。ロール割り当てが削除された後、このアプリケーションは Azure リソースへのアクセス権を持ちませんが、アプリケーションを残すことで他のスコープにおける DoiT との接続への影響を避けることができます。

オフボーディングの確認

Azure のロール割り当ての変更が伝播するまで数分待ってから、再度スクリプトを実行してください。クリーンアップが正常に完了すると、次の結果が返されます。

No DoiT onboarding role assignments were found at <management-group-scope>.

スクリプトを繰り返し実行しても問題ありません。このスクリプトは、指定した管理グループにおける Cloud Intelligence サービスプリンシパルに対する ReaderMonitoring Reader の割り当てのみを削除します。