すべてのプロダクト
Search
ドキュメントセンター

Key Management Service:複数アカウント間での KMS インスタンスの共有

最終更新日:Apr 01, 2026

Key Management Service (KMS) を使用すると、組織内の複数のメンバーアカウントに対して単一の KMS インスタンスを共有できます。各チームや部門が個別に KMS インスタンスをプロビジョニングする代わりに、中央アカウントが 1 つのインスタンスを所有し、他のアカウントにアクセス権限を付与することで、コスト削減とセキュリティポリシーの一元管理を実現します。

仕組み

クロスアカウント共有は、2 つの Alibaba Cloud サービスに依存します:リソースディレクトリ(組織管理用)およびリソース共有(アクセス委任用)です。

ワークフローには以下の 3 つのフェーズがあります:

  1. 組織のセットアップ。 リソースディレクトリを使用して、関連するすべての Alibaba Cloud アカウントを単一の組織にグループ化します。

  2. KMS インスタンスの共有。 リソース所有者がリソース共有を作成し、KMS インスタンスを追加し、どのメンバーアカウント(プリンシパル)がそのインスタンスにアクセスできるかを指定します。

  3. 権限の付与。 権限には以下の 2 つのレイヤーがあります:

    • リソース共有レイヤー: リソース所有者は、リソース共有に AliyunRSDefaultPermissionKMSInstance をアタッチします。これにより、プリンシパルは KMS インスタンスへの接続が可能になります。

    • RAM レイヤー: 各プリンシパルは、自社の RAM ユーザーまたはロールに対して、kms:Encryptkms:Decrypt などの特定の KMS API 呼び出しを許可する RAM ポリシーを設定する必要があります。

例: 部門 A が KMS インスタンスを所有しています。部門 B はキー管理機能を必要としています。別途インスタンスを購入する代わりに、企業はリソースディレクトリを使用して両方のアカウントを単一の組織に統合し、リソース共有を通じて部門 A の KMS インスタンスを部門 B と共有します。

image

前提条件

開始する前に、以下の条件を満たしていることを確認してください。

  • 有効化されたソフトウェアキー管理インスタンスまたはハードウェアキー管理インスタンス(無効化されたインスタンスは共有できません)

  • リソースディレクトリの管理アカウント

  • インスタンス所有者およびすべてのプリンシパルが、同一の検証済み企業および同一のリソースディレクトリに所属していること

共有モードの選択

KMS インスタンスの共有には、データ所有権の取り扱い方法が異なる 2 つのモードがサポートされています。

独立所有共同所有
適用範囲同一の名前を持つクロスアカウントシークレット、またはアカウント間での厳格な権限隔離が必要な場合IT やセキュリティなどの中核チームが、すべてのアカウントにわたるキーおよびシークレットを一元的に管理・監査する場合
データ所有権リソース所有者は、プリンシパルが作成したキーおよびシークレットを管理・アクセスできませんリソース所有者は、プリンシパルが作成したキーおよびシークレットを管理・アクセスできます
同一名称のリソース許可 — プリンシパルおよびリソース所有者が同一名称のシークレットを作成できます不許可 — インスタンス内のすべてのキーおよびシークレット名はグローバルに一意である必要があります
モード変更共同所有へ変更できません独立所有へ変更できます(不可逆)

役割ごとの詳細な権限構成については、「付録:異なる共有モードにおける機能権限」をご参照ください。

共有の設定(インスタンス所有者向け)

ステップ 1:リソースディレクトリのセットアップとリソース共有の有効化

リソースディレクトリのセットアップ:

  1. 管理アカウントでResource Management コンソールにログインします。

  2. 左側ナビゲーションウィンドウで、リソースディレクトリ > リソースディレクトリの有効化 を選択し、リソースディレクトリの有効化 をクリックします。詳細については、「リソースディレクトリの有効化」をご参照ください。

  3. メンバーアカウントをグループ化するフォルダを作成します:左側ナビゲーションウィンドウで リソースディレクトリ > 管理 を選択し、右上隅の リソース組織ビュー をクリックします。ディレクトリツリーから対象のフォルダを選択し、メンバー タブで フォルダの作成 をクリックします。フォルダ名 を入力し、OK をクリックします。詳細については、「フォルダの作成」をご参照ください。

  4. フォルダにメンバーアカウントを追加します:メンバー タブで、メンバーの作成 または メンバーの招待 をクリックします。以下のパラメーターを設定します:

    メンバーの招待

    パラメーター説明
    アカウント ID またはログインメールアドレスアカウント登録時に使用したアカウント ID またはログインメールアドレスを入力します。複数のアカウント ID をカンマで区切ることで、一括招待が可能です。アカウント ID の確認方法については、「Alibaba Cloud アカウントの ID を確認する方法
    備考招待を受け取るユーザーが招待の正当性を確認できるよう、任意の備考を記述します。
    タグメンバーアカウントの管理を容易にするために、メンバーアカウントにバインドするタグを指定します。
    親フォルダ招待されたアカウントを配置するフォルダです。デフォルトではルートフォルダが選択されます。変更 をクリックして変更できます。

    メンバーの作成

    パラメーター説明
    Alibaba Cloud アカウント名リソースディレクトリ内におけるメンバーアカウントの固有識別子です。2~50 文字で、英字、数字、および _.- を使用できます。先頭および末尾は英字または数字で始まり・終わり、連続する特殊文字を含めることはできません。
    表示名2~50 文字で、漢字、英字、数字、および _.- を使用できます。
    課金アカウント新規メンバーアカウントの料金支払い責任者を選択します。管理アカウント、既存のメンバーアカウント、または新規メンバーアカウント自身のいずれかから選択できます。
    タグメンバーアカウントの管理を容易にするために、メンバーアカウントにバインドするタグを指定します。
    親フォルダデフォルトではルートフォルダが選択されます。変更 をクリックして変更できます。

リソース共有の有効化:

  1. 管理アカウントでリソース共有コンソールにログインします。左側ナビゲーションウィンドウで、リソース共有 > 設定項目 を選択します。

  2. 有効化 をクリックし、リソース共有サービスリンクロール ダイアログボックスで OK をクリックします。

    システムは、リソースディレクトリから組織情報を取得するために、AliyunServiceRoleForResourceSharing という名前のサービスリンクロールを自動的に作成します。詳細については、「リソース共有のサービスリンクロール」をご参照ください。

ステップ 2:KMS インスタンスの共有

  1. インスタンス所有者としてKey Management Service コンソールにログインします。上部のメニューバーからリージョンを選択し、左側ナビゲーションウィンドウで インスタンス をクリックします。

  2. 対象の KMS インスタンスを見つけ、リソースの共有操作 列からクリックします。RD 複数アカウント共有設定 パネルで、共有モードを選択します。

  3. リソース共有への追加 パネルで、リソース共有の構成方法を選択します:

    警告

    KMS インスタンスを既存のリソース共有に追加すると、その共有に現在参加しているすべてのプリンシパルが、新しいインスタンスに自動的にアクセスできるようになります。この操作は、インスタンスのアクセス管理クォータを消費し、意図しない権限の昇格を引き起こす可能性があります。慎重に進めてください。

    作成(推奨)既存のリソース共有を選択
    使用タイミング初めて共有する場合、またはインスタンスごとに権限隔離が必要な場合既存の共有に現在のインスタンスを追加して、そのプリンシパルおよび権限を再利用する場合
    権限範囲現在の KMS インスタンスのみ;新しく追加されたアカウントのみがアクセス可能既存のすべてのプリンシパルが新しいインスタンスに自動的にアクセス可能;権限の変更は共有内のすべてのリソースに影響
  4. リソース共有のパラメーターを構成し、OK をクリックします:

    新しいリソース共有を作成する場合:

    • リソース共有名 — 最大 50 文字。漢字、英字、数字、および ._- を使用できます。

    • プリンシパル — この KMS インスタンスを使用できるアカウントを指定します。追加される各プリンシパルは、インスタンスの アクセス管理クォータ を消費します。既存のリソース共有からプリンシパルを追加または削除すると、その共有内の すべてのリソース に影響します。以下の 3 種類のプリンシパルがサポートされています:

      プリンシパルタイプ範囲
      Alibaba Cloud アカウント指定されたアカウント ID のみとリソースを共有
      リソースディレクトリ組織リソースディレクトリ内のすべてのメンバーアカウント(今後追加されるメンバーアカウントを含む)とリソースを共有
      フォルダ(組織単位)指定されたフォルダ(形式:fd-xxxxxxxx)内のすべてのメンバーアカウント(今後追加されるメンバーアカウントを含む)とリソースを共有。フォルダ ID の確認方法については、「フォルダの基本情報を表示」をご参照ください。

      細かい制御を行うには、フォルダまたは Alibaba Cloud アカウント単位でプリンシパルを追加します。

    • 権限AliyunRSDefaultPermissionKMSInstance を選択することを推奨します(2 つのバージョン v1 および v2 が利用可能で、新規共有では v2 がデフォルトです)。使用中のバージョンを確認するには、「権限の詳細を表示」をご参照ください。AliyunRSPermissionKMSInstanceReadWrite は非推奨であり、新規共有には使用しないでください。

    既存のリソース共有を選択する場合:

    • リソース共有の選択 — コンソールには、アカウント内のすべてのリソース共有が一覧表示されます。「リソース共有の作成」を参考にしてください。

    • 共有リソース — 読み取り専用です。選択した共有に既に存在するリソースを表示します。この操作完了後、現在の KMS インスタンスが追加されます。

    • プリンシパル および 権限 — 新規共有作成時と同じオプションです。ただし、AliyunRSPermissionKMSInstanceReadWrite は非推奨です。以前に使用していた場合は、その共有に限り継続して使用できます。

共有インスタンスの利用(プリンシパル向け)

  1. Key Management Service コンソールにログインします。インスタンス ページで、共有中 タグが付いた KMS インスタンスを確認し、共有が有効であることを確認します。

  2. キー または シークレット タブでキーおよびシークレットを作成します。KMS インスタンス として共有インスタンスを選択します。構成の詳細については、「キーの作成」および「シークレットの作成」をご参照ください。

  3. RAM ユーザーまたはロールに必要な権限を付与します。関連する KMS 操作(例:kms:Encryptkms:Decrypt)を含む RAM ポリシーを構成します。手順については、「RAM を使用したアクセス制御」をご参照ください。

  4. 他の Alibaba Cloud サービスまたは自社アプリケーションでキーおよびシークレットを利用します:

共有の管理と保守

リソース共有のプリンシパルの変更

KMS コンソールから:

  1. インスタンス所有者としてKey Management Service コンソールにログインします。リージョンを選択し、左側ナビゲーションウィンドウで インスタンス をクリックします。

  2. インスタンス ページで、インスタンスタイプに応じて ソフトウェアキー管理 タブまたは ハードウェアキー管理 タブを開きます。

  3. 対象のインスタンスを見つけ、リソースの共有操作 列からクリックします。

  4. RD 複数アカウント共有設定 パネルで、リソース共有 を選択します。プリンシパル セクションで 編集 をクリックしてプリンシパルを追加または削除し、OK をクリックします。

リソース共有コンソールから:

詳細な手順については、「リソース共有の変更」をご参照ください。

KMS インスタンスの共有の停止

共有の停止とは、リソース共有を削除することを意味します。削除後、すべてのプリンシパルはその共有内のリソースへのアクセスを失います。

重要

共有を停止する前に、各プリンシパルは共有インスタンス内で作成したすべてのキーおよびシークレットを削除する必要があります。リソースが残っている場合、共有の停止は失敗します。ビジネスへの影響を回避するため、関連するリソースがまだ使用されていないことを確認してください。

この操作は、リソース共有コンソールからのみ実行できます:

  1. 管理アカウントでリソース共有コンソールにログインします。

  2. 左側ナビゲーションウィンドウで、リソース共有 > 私が共有するリソース を選択します。対象のリソース共有を見つけ、その ID をクリックします。

  3. 右上隅の リソース共有の削除 をクリックします。確認ダイアログボックスで OK をクリックします。

本番環境に適用

ネットワーク接続性

プリンシパルのアプリケーションが VPC 内で実行され、プライベートゲートウェイ経由で KMS にアクセスする必要がある場合、インスタンス所有者は、プリンシパルの VPC を共有 KMS インスタンスにアタッチする必要があります。手順については、「同一リージョン内の複数の VPC からの KMS インスタンスへのアクセス」をご参照ください。

監査およびコンプライアンス

  • リソース所有者: ActionTrail を有効化して、共有インスタンスに対するすべての管理操作およびプリンシパルによるすべてのキー操作を記録します。

  • プリンシパル: ActionTrail を有効化して、自社アカウント内のすべての API 呼び出しを記録します。

変更管理

  • 共有の停止: 共有を停止する前に、プリンシパルは共有インスタンス内で作成したすべてのキーおよびシークレットを削除する必要があります。リソースが残っている場合、共有の停止は失敗します。手順については、「KMS インスタンスの共有の停止」をご参照ください。

  • プリンシパルの変更: リソース共有からプリンシパルを追加または削除すると、その共有内のすべてのリソースに影響します。権限の競合を回避するため、異なるビジネスシナリオまたはチームごとに個別のリソース共有を作成してください。手順については、「リソース共有のプリンシパルの変更」をご参照ください。

制限事項

  • デフォルトキー(例:alias/acs/oss)は共有できません。

  • プリンシパルは、リージョンをまたいで共有 KMS インスタンスにアクセスできません。

  • 共同所有 モードでは、インスタンス内のすべてのキーおよびシークレット名はグローバルに一意である必要があります。

  • アクセス管理クォータ: KMS インスタンスの共有は、リソース所有者のアクセス管理クォータを消費します。使用されるクォータは、共有されたアカウント数とアタッチされた VPC 数の合計に等しくなります。たとえば、3 つのアカウントと 2 つの VPC を共有すると、クォータは 5 となります。クォータを増やす必要がある場合は、「KMS インスタンスのスペックアップ」をご参照ください。

    重要

    クォータ不足によりプリンシパルの追加に失敗した場合、クォータを増加させてもシステムは自動的に再試行しません。手動でリソース共有からプリンシパルを削除し、再度追加してください。

よくある質問

KMS API を呼び出した際に、プリンシパルが「AccessDenied」または「Forbidden」エラーを受信するのはなぜですか?

以下の 4 つの条件を順に確認してください:

  1. リソース共有のステータス: リソース共有コンソールで、プリンシパルのアカウントがリソース共有に追加されており、共有ステータスがアクティブであることを確認します。

  2. KMS インスタンスの権限: リソース共有にアタッチされている権限が AliyunRSDefaultPermissionKMSInstance であることを確認します。

  3. RAM 呼び出し権限: 呼び出しを行っている RAM ユーザーまたはロールが、kms:Encryptkms:Decrypt などの必要な KMS 操作を許可する RAM ポリシーを持っていることを確認します。

  4. リソース所有権: 独立所有 モードでは、現在のプリンシパルがアクセスしようとしているキーまたはシークレットを実際に作成したことを確認します。

共同所有モードでシークレットを作成する際に、名前競合エラーが発生するのはなぜですか?

共同所有モードでは、KMS インスタンス内のすべてのキーおよびシークレット名は、すべてのアカウントにわたって一意である必要があります。リソース所有者およびどのプリンシパルも、すでに使用中の名前でリソースを作成することはできません。

この問題を解決するには、別の名前を選択するか、同一名称のリソースを複数のアカウントで使用する必要がある場合は、共有モードを 独立所有 に切り替えます。

警告

共同所有から独立所有への切り替えは不可逆です。実行前に影響を十分に評価してください。

付録:異なる共有モードにおける機能権限

共同所有

機能サブ機能インスタンス所有者プリンシパル
インスタンス管理KMS インスタンスの詳細の表示対応非対応
KMS インスタンスへのマルチ VPC アクセスの構成対応非対応
インスタンスのスペックアップ対応非対応
インスタンスの更新対応非対応
共有の停止対応非対応
キー管理キーの作成対応対応
キーのメタデータの表示対応 — プリンシパルが作成したキーを含むすべてのキーに適用対応 — プリンシパルが作成したキーにのみ適用
キーのローテーションの設定対応対応
キーの削除予約対応対応
削除保護の有効化対応対応
キーのエイリアスの作成および管理対応対応
キーのタグの追加および管理対応対応
暗号化操作対応該当なし
シークレット管理シークレットの作成対応対応
シークレットのメタデータの表示対応 — プリンシパルが作成したシークレットを含むすべてのシークレットに適用対応 — プリンシパルが作成したシークレットにのみ適用
シークレットの削除対応対応
シークレットのローテーションの設定対応対応
シークレットのタグの追加および管理対応対応
シークレット値の取得該当なし対応
バックアップ管理対応 — プリンシパルが作成したキーおよびシークレットを含むすべてのキーおよびシークレットをバックアップ可能非対応
アプリケーションアクセスアプリケーションアクセスポイントの作成対応対応

独立所有

機能サブ機能インスタンス所有者プリンシパル
インスタンス管理KMS インスタンスの詳細の表示対応非対応
KMS インスタンスのマルチ VPC アクセスの構成対応非対応
インスタンスのスペックアップ対応非対応
インスタンスの更新対応非対応
共有の取り消し対応非対応
キー管理キーの作成対応対応
キーのメタデータの表示対応 — インスタンス所有者が作成したキーにのみ適用対応 — プリンシパルが作成したキーにのみ適用
キーのローテーションの設定対応対応
キーの削除予約対応対応
削除保護の有効化対応対応
キーのエイリアスの作成および管理対応対応
キーのタグの追加および管理対応対応
暗号化操作対応該当なし
シークレット管理シークレットの作成対応対応
シークレットのメタデータの表示対応 — インスタンス所有者が作成したシークレットにのみ適用対応 — プリンシパルが作成したシークレットにのみ適用
シークレットの削除対応対応
シークレットのローテーションの設定対応対応
シークレットのタグの追加および管理対応対応
シークレット値の取得該当なし対応
バックアップ管理対応 — インスタンス所有者が作成したキーにのみ適用非対応
アプリケーションアクセスアプリケーションアクセスポイントの作成対応対応