機械翻訳について

第4章 Identity and Access Managementの概要

Identity and Access Managementサービス(IAM)では、テナンシ内のクラウド・リソースへのアクセス権を持つユーザーを制御できます。 ユーザー・グループがどのタイプのアクセス権を持ち、どの特定のリソースにアクセスできるかを制御するテナンシ管理者のタスクです。 アクセス制御を管理および保守する責任は、他の権限のあるユーザーに委任できます。たとえば、テナンシのサブコンパートメントへのフル・アクセス権を付与します。

アプライアンス管理者アカウントは個別に管理され、アプライアンス管理機能へのアクセスを提供します。 この機能は、テナンシ・レベルのIAMサービスに関連していません。 詳細は、アプライアンス管理の概要の章の第3.1項、「管理者アクセス」を参照してください。

4.1 ユーザーとグループ

テナンシが作成されると、ログインおよび初期設定タスクの実行を可能にするデフォルト・ユーザー・アカウントが追加されます。 このデフォルト・ユーザーは、テナンシ内のすべてのリソースおよび操作へのフル・アクセスを提供する管理者という名前のグループに含まれています。 グループは削除できません。常に1人以上のユーザーを含める必要があります。

ログインすると、テナンシ管理者は、ユーザーの追加を開始し、グループに編成できます。 グループは、特定のリソース・セットに対して同じタイプのアクセス権を持つユーザーのセットです。 一般的な原則は、ユーザーが明示的に権限を付与されていないかぎり、ユーザーがアクセス権を持っていないことです。

ユーザー・アカウントはテナンシ内でローカルに作成できますが、Oracle Private Cloud Applianceでは、既存のアイデンティティ・プロバイダとのフェデレーションもサポートされます。 この構成では、テナンシ管理者がテナンシとアイデンティティ・プロバイダ間にフェデレーション・トラスト関係を設定して、ユーザーが既存のIDとパスワードを使用してログインできるようにします。 アイデンティティ・プロバイダからの既存の各ユーザー・グループをテナンシ内のグループにマップできるため、既存のグループ定義を再利用してクラウド・リソースへのアクセスを承認できます。 詳細は、第4.3項、「アイデンティティ・プロバイダによるフェデレーション」を参照してください。

リソースにアクセスして操作を実行する権限は、ポリシーで定義されます。 Administratorsグループのポリシーは、このグループのユーザーがテナンシ内のすべてのリソースを管理できることを示しています。 他のすべてのユーザー・グループについても、特定の権限を管理するためにポリシーを定義する必要があります。 詳細は、第4.5項、「ポリシーの仕組み」を参照してください。

リソースをグループ化および分離するには、リソースをコンパートメントに編成します。 コンパートメントは、テナンシの主要なビルディング・ブロックです。 テナンシがルート・ディレクトリと同等のファイル・システム構造のディレクトリと比較できます。 コンパートメントは、リソースへのアクセスの制御および保護にも役立ちます。 管理者とは異なり、通常のユーザーには、アクセス権があるコンパートメントのみが表示されます。 ポリシー・ステートメントは、アクセスのタイプをさらに絞り込みます。 詳細は、第4.4項、「コンパートメント内のリソースの編成」を参照してください。

ユーザー、グループ、コンパートメント、リソースおよびポリシーが相互にやり取りする方法の例として、次のシナリオを考えてみます。 組織内の異なるチームにグループを作成し、チーム・リソースごとに個別のコンパートメントを割り当てることにしました。 各チームが自分のコンパートメント内にインスタンスを作成して使用することを許可しますが、他のチームのリソースにアクセスすることはできません。 また、ネットワーク管理者にテナンシ内のすべてのネットワーク・リソースの管理を許可することもできます。 これを実現するには、ネットワーク管理者のみが管理できる専用ネットワーク・コンパートメントにすべてのネットワーク関連リソースを作成します。 他のユーザーは、構成でのネットワーク・リソースの使用を許可する必要がありますが、ネットワーク設定を変更する権限がありません。

4.2 ユーザー資格証明

様々なタイプの資格証明は、Identity and Access Management (IAM)サービスを介して管理されます:

  • アカウント・パスワード: コンピュートWeb UIにサインインして、テナンシのクラウド・リソースを操作します。 フェデレーテッド・ユーザーのパスワードは、アイデンティティ・プロバイダがログイン・アクティビティを制御するため、IAMを介して管理されないことに注意してください。

  • API署名キー: 認証を必要とするAPIリクエストの送信用。 これらのキーはPEM形式で作成する必要があります。

4.2.1 アカウント・パスワード

新しいユーザー・アカウントを作成する場合、テナンシ管理者はワンタイム・パスワードを生成し、安全な方法でユーザーに提供します。 ユーザーが初めてサインインすると、このパスワードを変更するよう求められます。 7日後にワンタイム・パスワードが期限切れになり、管理者は新しいパスワードを生成する必要があります。

新しいパスワードを使用して正常にサインインすると、付与されている権限に従って、ユーザーはテナンシ内のクラウド・リソースの操作を開始できます。

すべてのユーザーは自分のパスワードを変更できますが、これはCompute Web UIを介して実行できます。 パスワードを忘れたユーザーは、テナンシ管理者にパスワードのリセットをリクエストする必要があります。

1行へのログイン試行が10回失敗すると、ユーザーはシステムから自動的にロックアウトされます。 テナンシ管理者は、アカウントのブロックを解除する必要があります。

4.2.2 API署名キー

APIリクエストを行う必要があるユーザーには、ユーザー・プロファイルにRSA公開鍵を追加する必要があります。 秘密鍵と公開鍵はどちらもPEM形式であり、最小長は2048ビットです。 ユーザーは、Compute Web UIを介して秘密キー/公開キー・ペアを生成し、秘密キーをダウンロードするか、ローカル・マシンでキー・ペアを生成し、公開キーをプロファイルにアップロードします。

あるいは、テナンシ管理者はAPIキーを生成し、すべてのユーザーのプロファイル設定を完了できます。 これは非ヒューマン・ユーザー・アカウントの要件です: 人間が操作しなくてもAPIリクエストを作成するシステム。 このようなシステムでは、管理者は署名鍵を使用してパスワードなしでユーザー・アカウントを作成する必要があります。

APIリクエストが送信されるシステムでは、ユーザー・ホーム・ディレクトリ内に.ociという名前のディレクトリを作成する必要があります。 .ociディレクトリには、APIサーバーとの対話に必要なパラメータを含む構成ファイルが含まれている必要があります。 秘密キー・ファイルが同じディレクトリにない場合、その格納場所への正しいパスがリストされていることを確認します。 APIリクエストは秘密キーを使用して署名されます。

ユーザー・アカウントには、一度に最大3つのAPI署名キーを含めることができます。 API署名キーは、コンピュート・インスタンスへのアクセスに使用するSSHキーとは異なります。

4.3 アイデンティティ・プロバイダによるフェデレート

多くの企業は、アイデンティティ・プロバイダを使用してユーザー・ログインとパスワードを管理し、セキュアなwebサイト、サービスおよびリソースへのアクセスについてユーザーを認証します。 Oracle Private Cloud Appliance Compute Web UIにアクセスするには、ユーザーもユーザー名とパスワードを使用してサインインする必要があります。 管理者は、クラウド・リソースにアクセスして使用するための新しい資格証明を作成するのではなく、各ユーザーが既存のログインとパスワードを使用できるように、サポートされているアイデンティティ・プロバイダで連邦できます。

フェデレーションには、アイデンティティ・プロバイダとOracle Private Cloud Applianceの間の信頼関係の設定が含まれます。 管理者がその関係を確立すると、コンピュートWeb UIに移動するすべてのユーザーに、アイデンティティ・プロバイダが提供するシングル・サインオンエクスペリエンスが求められます。

4.3.1 サポートされているアイデンティティ・プロバイダ

アイデンティティ・フェデレーションの場合、Oracle Private Cloud ApplianceはSecurity Assertion Markup Language (SAML) 2.0プロトコルをサポートします。 ただし、バージョン3.0.1でサポートされているアイデンティティ・プロバイダは、Active Directory Federation Servicesを介したMicrosoft Active Directoryのみです。

組織には複数のActive Directoryアカウントを設定できます。たとえば、組織の部門ごとに1つずつ設定できます。 複数のActive DirectoryアカウントをOracle Private Cloud Applianceとフェデレートできますが、設定する各フェデレーション・トラストは単一のActive Directoryアカウント用である必要があります。 アイデンティティ・フェデレーションは、Compute Web UIとサービスWeb UIで使用できます。

Oracle Private Cloud Applianceバージョン3.0.1では、アイデンティティ・システム間でのユーザー・プロビジョニングを可能にする標準プロトコルである、クロスドメイン・アイデンティティ管理(SCIM)のSystem for Cross-domain Identity Management (SCIM)は現在サポートされていません。 SCIMを使用しないと、アイデンティティ・プロバイダのユーザー・アカウントをテナンシで自動的にプロビジョニングして同期することはできません。 そのため、フェデレーテッド・ユーザーの資格証明はテナンシ内で管理できません。

4.3.2 フェデレーテッド・ユーザーの経験

コンピュートWeb UIを参照する場合、ユーザーはテナンシの名前を入力するよう求められます。 フェデレーテッド・ユーザーは、使用するアイデンティティ・プロバイダを選択し、認証のためにアイデンティティ・プロバイダのサインイン・インタフェースにリダイレクトされます。 すでに設定されたユーザー名とパスワードを入力すると、アイデンティティ・プロバイダによって認証され、Oracle Private Cloud Appliance Compute Web UIにリダイレクトされます。 ここから、付与された権限に従って、テナンシのリソースにアクセスできます。

フェデレーテッド・ユーザー・アカウントは、アイデンティティ・プロバイダ内で作成および管理され、Oracle Private Cloud Appliance内でレプリケートまたは同期されません。 フェデレーテッド・ユーザーには、テナンシのOracle Private Cloud Applianceグループにマップされているアイデンティティ・プロバイダ・グループのメンバーシップに基づいてアクセス権が付与されます。 ローカル・ユーザーとは異なり、フェデレーテッド・ユーザーはCompute Web UIを介して資格証明を管理できません。 「ユーザー設定」ページがなく、パスワードを変更またはリセットすることもできず、APIおよびCLIを使用するためのAPI署名キーをアップロードすることもできません。

4.3.3 フェデレーション・プロセスの概要

Oracle Private Cloud Applianceとアイデンティティ・プロバイダ間のフェデレーション信頼を設定するには、両方のシステムでそれぞれ特定のステップを実行します。 通常、アイデンティティ・フェデレーションは次のステップで構成されます:

  1. Oracle Private Cloud Applianceテナンシのグループにマップできるように、アイデンティティ・プロバイダでグループを構成します。

  2. アイデンティティ・プロバイダからSAMLメタデータ・ドキュメントをダウンロードし、マップするグループの名前を収集します。

  3. Oracle Private Cloud Applianceテナンシで新しいアイデンティティ・プロバイダを設定します。 アイデンティティ・プロバイダ・メタデータ・ファイルをアップロードする必要があります。 この段階でグループ・マッピングを作成するか、戻って後で追加します。

  4. テナンシのフェデレーション・ページからOracle Private Cloud Applianceフェデレーション・メタデータ・ドキュメントをダウンロードしています。

  5. Oracle Private Cloud Applianceを、アイデンティティ・プロバイダで信頼できるアプリケーションまたは信頼できるリライイング・パーティとして設定します。 Oracle Private Cloud Applianceフェデレーション・メタデータ・ドキュメントをアップロードするか、URLを指定する必要があります。

    アイデンティティ・プロバイダのSAML認証レスポンスは、Oracle Private Cloud Applianceで必要なパラメータである名前IDおよびグループを含むように構成する必要があります。

  6. マップされたグループのIAMポリシーの設定。

  7. フェデレーテッド・ユーザーにテナンシの名前とOracle Private Cloud Appliance Compute Web UIへのURLを指定します。

4.4 コンパートメント内のリソースの編成

初期設定後、テナンシにはルート・コンパートメントのみが含まれます。 テナンシ管理者は、設定タスクを実行して組織計画を確立する必要があります。 プランには、リソースを編成するためのコンパートメント階層と、リソースにアクセスする必要があるユーザー・グループの定義を含める必要があります。 これら2つのことは、アクセスを管理するためのポリシーの記述方法に影響するため、まとめて検討する必要があります。

4.4.1 コンパートメントの理解

コンパートメントを使用してクラウド・リソースを編成および分離する方法について慎重に検討してください。 コンパートメントは、そのプロセスに不可欠です。 ほとんどのリソースはコンパートメント間で移動できます。 ただし、何も実装する前に、組織のコンパートメント設計を事前に検討することが重要です。

コンパートメント構造を計画する際は、次の点に注意してください:

  • テナンシまたはルート・コンパートメントの下に、最大6個のコンパートメントの階層を作成できます。

  • コンパートメントは、物理的ではなく論理的です。 関連リソース・コンポーネントは異なるコンパートメントに配置できます。 たとえば、インターネット・ゲートウェイにアクセスできるクラウド・ネットワーク・サブネットは、同じクラウド・ネットワーク内の他のサブネットとは別のコンパートメントに保護できます。

  • コンパートメントは、リソースを表示するためのフィルタのように動作します。 コンパートメントを選択すると、コンピュートWeb UIには、そのコンパートメント内のリソースのみが表示されます。 別のコンパートメントのリソースを表示するには、まずそのコンパートメントを選択する必要があります。

    このエクスペリエンスは、ユーザー、グループおよびフェデレーション・プロバイダを表示する場合に異なります。 これらは、個々のコンパートメントではなくテナンシ自体に存在します。 ポリシーは、テナンシまたはコンパートメントにアタッチできます。 アタッチされている場所によって、だれがそれを変更または削除できるかが制御されます。

  • Compute Web UIには、アクセス権限のあるコンパートメントとリソースのみが表示されます。 すべてのコンパートメントを表示し、すべてのリソースを操作できるのは管理者のみです。

  • リソース(たとえば、ブロック・ストレージ・ボリューム、VCN、サブネット)の作成時に、配置するコンパートメントを決定する必要があります。

4.4.2 リソース・アクセスの付与に関する考慮事項

テナンシの設定を計画する際のもう1つの主な考慮事項は、誰がどのリソースにアクセスする必要があるかです。 様々なユーザー・グループがリソースにアクセスする必要がある方法を定義すると、リソースを最も効率的に編成する方法を計画できるため、アクセス・ポリシーの記述と保守が容易になります。

たとえば、次のことを必要とするユーザーがあるとします:

  • コンピュートWeb UIを表示しますが、リソースの編集や作成はできません

  • 複数のコンパートメントにわたる特定のリソースを作成および更新します。次に例を示します: クラウド・ネットワークおよびサブネットを管理する必要があるネットワーク管理者

  • インスタンスとブロック・ボリュームを起動および管理しますが、クラウド・ネットワークにはアクセスできません

  • すべてのリソースに対する完全な権限を持ちますが、特定のコンパートメント内のみです

  • 他のユーザーの権限および資格証明を管理

4.4.3 コンパートメント組織の例

この項では、リソース管理の目標に合せてコンパートメントを構成する方法について説明します。

4.4.3.1 ルート・コンパートメント内のすべてのリソース

組織が小規模な場合、または概念実証段階にいる場合は、すべてのリソースをルート・コンパートメントまたはテナンシに配置することを検討してください。 この方法を使用すると、すべてのリソースをすばやく表示および管理できます。 ポリシーを記述し、グループを作成して、特定のリソースに対する権限を、アクセスを必要とするユーザーのみに制限することもできます。

単一コンパートメント・アプローチを設定する高度なタスク:

  1. サンドボックス・コンパートメントを作成します。 計画ではルート・コンパートメント内のリソースを維持することですが、Oracleでは、機能を試すための専用の領域をユーザーに提供できるように、サンドボックス・コンパートメントを設定することをお薦めします。 サンドボックス・コンパートメントでは、テナンシ(ルート)コンパートメント内のリソースに対するより厳しい権限を維持しながら、リソースの作成および管理権限をユーザーに付与できます。

  2. グループおよびポリシーの作成。

  3. ユーザーを追加します。

4.4.3.2 個別管理プロジェクト・コンパートメント

組織に複数の部門があり、個別に管理したい場合や、個別に管理しやすくなる異なるプロジェクトが複数存在する場合には、このアプローチを検討してください。

このアプローチでは、そのプロジェクトのみのアクセス・ポリシーを設定できる各プロジェクト・コンパートメントに専用管理者グループを追加できます。 ユーザーおよびグループは引き続きテナンシ・レベルで追加する必要があります。 1つのグループにすべてのリソースに対する制御を付与できますが、ルート・コンパートメントまたは他のプロジェクトに対する管理者権限は許可しません。 このようにして、様々なグループが独自のリソースに対して独自の「サブ・クラウド」を設定し、個別に管理できるようにします。

マルチ・プロジェクト・アプローチを設定するためのハイ・レベル・タスク:

  1. サンドボックス・コンパートメントを作成します。 Oracleでは、機能を試すための専用の領域をユーザーに提供できるように、サンドボックス・コンパートメントを設定することをお薦めします。 サンドボックス・コンパートメントでは、テナンシおよび他のコンパートメントのリソースに対するより厳しい権限を維持しながら、リソースを作成および管理する権限をユーザーに付与できます。

  2. 各プロジェクトのコンパートメントを作成します。 次に例を示します: ProjectA, ProjectB.

  3. プロジェクトごとに管理者グループを作成します。 次に例を示します: ProjectA_Admins.

  4. 各管理者グループのポリシーを作成します。 次に例を示します。

    Allow group ProjectA_Admins to manage all-resources in compartment ProjectA
  5. ユーザーを追加します。

  6. ProjectAおよびProjectBの管理者が指定のコンパートメント内に、リソースを管理するためのサブコンパートメントを作成できるようにします。

  7. ProjectAおよびProjectBの管理者に、コンパートメントへのアクセスを管理するポリシーを作成します。

4.4.4 コンパートメントの操作

この項では、コンパートメント管理の基本について説明します。

コンパートメントの作成

コンパートメントを作成する場合、テナンシ内で一意の名前を指定する必要があります。 最大100文字の長さで、文字、数字、ピリオド、ハイフンおよびアンダースコアを含めることができます。 コンパートメントの説明も指定する必要があります。この説明の長さは1から400文字で、一意で変更も可能です。 新しいコンパートメントには、Oracle Cloud ID (OCID)と呼ばれる一意の識別子が自動的に割り当てられます。

コンパートメント内にサブコンパートメントを作成して、最大6レベルの深さの階層を作成できます。

コンパートメント・アクセス制御

コンパートメントの作成後、少なくとも1つのポリシーを記述する必要があります。そうしないと、テナンシ・レベルで設定された権限を持つ管理者およびユーザーにのみアクセスできます。 別のコンパートメント内にコンパートメントを作成すると、サブコンパートメントはその階層の上位にあるコンパートメントからアクセス権限を継承します。

アクセス・ポリシーを作成する場合は、それをアタッチするコンパートメントを指定する必要があります。 これは、後でポリシーを変更または削除できるユーザーを制御します。 コンパートメント階層設計によっては、テナンシ、親または特定のコンパートメント自体にアタッチできます。

コンパートメントへのリソースの追加

Compute Web UIでクラウド・リソースの作業を開始する場合は、作業するコンパートメントをリストから選択する必要があります。 そのリストは、アクセス権のあるテナンシ内のコンパートメントのみを表示するようにフィルタ処理されます。

新しいリソースをコンパートメントに配置するには、リソースの作成時にそのコンパートメントを指定するだけです。 コンパートメントは、リソースを作成するために必要なパラメータの1つです。 Compute Web UIで作業するときは、最初にリソースを作成するコンパートメントを表示していることを確認します。

ほとんどのIAMリソースはテナンシに存在することに注意してください。 これは常にユーザーとグループの場合に該当しますが、コンパートメントとポリシーはテナンシにもアタッチされます。 テナンシ・レベルのリソースは、特定のコンパートメントから作成または管理できません。

コンパートメント間でのリソースの移動

ほとんどのリソースは、作成後に移動できます。

一部のリソースには、リソースの依存関係がアタッチされています。 親リソースを別のコンパートメントに移動すると、アタッチされている依存関係がすべて同じように動作することはありません。 一部のリソースは親リソースとともにすぐに移動され、一部は非同期的に移動されます。つまり、移動が完了するまで新しいコンパートメントには表示されません。 他のリソースの場合、アタッチされたリソースの依存性は、新しいコンパートメントに自動的に移動されません。 これらのアタッチされたリソースは個別に移動できます。

リソースを新しいコンパートメントに移動すると、新しいコンパートメントを制御するポリシーがただちに適用され、リソースへのアクセスに影響します。 各リソースとそのアタッチメントの動作をよく理解するには、個々のリソースのサービス・ドキュメントを参照してください。

コンパートメントの削除

コンパートメントを削除するには、すべてのリソースの空である必要があります。 コンパートメントの削除を開始する前に、コンパートメントにアタッチされているポリシーを含め、そのすべてのリソースが移動、削除または終了していることを確認してください。

削除アクションは非同期で、作業リクエストが開始され、通常は完了までに数分かかります。 コンパートメントは削除状態ですが、コンパートメント・ピッカーに表示されません。 作業リクエストが失敗した場合、コンパートメントは削除されず、active状態に戻ります。 操作中の作業リクエストの進捗状況を追跡したり、作業リクエストが正常に完了したか、エラーが発生したかを確認できます。

コンパートメントが削除されると、その状態は削除済に更新され、ランダムな文字列がその名前に追加されます。 たとえば、CompartmentAはCompartmentA.qR5hP2BDになります。 コンパートメントの名前を変更すると、別のコンパートメントの元の名前を再利用できます。 削除されたコンパートメントは、コンパートメント・ページに365日間表示されますが、コンパートメント・ピッカーから削除されます。 削除されたコンパートメントを参照するポリシー・ステートメントがある場合、これらのステートメントは新しい名前を反映するように更新されます。

作業リクエストでコンパートメントの削除に失敗したことが示されている場合は、すべてのリソースを削除したことを確認します。 コンパートメントにポリシーがないことを確認します。 コンパートメント内のリソースが見つからない場合は、管理者に確認してください。すべてのリソースを表示する権限がない可能性があります。

4.4.5 別の親コンパートメントへのコンパートメントの移動

コンパートメントを移動するには、現在のコンパートメントおよび宛先コンパートメントの最下位の共有親コンパートメントに対するmanage all-resources権限を持つグループに属している必要があります。

コンパートメントを同じテナント内の別の親コンパートメントに移動できます。 コンパートメントを移動すると、そのすべてのコンテンツ(つまり、そのサブコンパートメントおよびリソース)も一緒に移動します。 この項では、コンパートメントの移動の影響についても説明します。 コンパートメントを移動する前に、これらに気付いていることを確認してください。

コンパートメントを移動する場合、次の制限が適用されます:

  • 移動するコンパートメントと同じ名前のコンパートメントを宛先コンパートメントに移動することはできません。

  • 同じ親コンパートメント内にある2つのコンパートメントは同じ名前であってはなりません。 したがって、コンパートメントを、同じ名前のコンパートメントがすでに存在する宛先コンパートメントに移動することはできません。

ポリシーの影響

コンパートメントを新しい親コンパートメントに移動すると、新しい親のアクセス・ポリシーが有効になり、以前の親のポリシーが適用されなくなります。 コンパートメントを移動する前に、次のことを確認してください:

  • 現在の位置にあるコンパートメントへのアクセスを制御するポリシーに注意してください。

  • コンパートメントを移動したときに有効になる新しい親コンパートメント内のポリシーに注意してください。

現在のコンパートメント内のリソースへのアクセス権を持つグループは、コンパートメントの移動時に権限を失い、宛先コンパートメント内の権限を持つグループはアクセス権を取得します。 コンパートメントを移動するときにどのグループが権限を失うかだけでなく、どのグループが権限を取得するかも認識していることを確認します。 必要に応じて、特定のユーザーが誤ってアクセスを失わないようにポリシー・ステートメントを調整します。

タグ付けの影響

コンパートメントの移動後にタグが自動的に更新されることはありません。 コンパートメントに基づいたタグ付け戦略を実装している場合は、コンパートメントの移動後にリソースのタグを更新する必要があります。

たとえば、CompartmentAにCompartmentBという名前の子コンパートメントがあるとします。 CompartmentAは、CompartmentAのすべてのリソースがTagAでタグ付けされるように、タグのデフォルトで設定されます。 したがって、CompartmentBとそのすべてのリソースは、このデフォルト・タグTagAでタグ付けされます。 CompartmentBをCompartmentCに移動しても、CompartmentAのデフォルトのタグのままになります。 CompartmentCのデフォルト・タグを設定している場合は、移動されたコンパートメントのリソースに追加する必要があります。

4.5 ポリシーの仕組み

ポリシーは、テナンシ内のどのクラウド・リソースに誰がアクセスできるかを指定するドキュメントです。 ポリシーは、グループが特定のコンパートメント内の特定のタイプのリソースを特定の方法で処理することを許可します。 ユーザー、グループまたはコンパートメントに精通していない場合は、Identity and Access Management概要の章の各項を参照してください。

4.5.1 契約の基本

リソースを制御するには、少なくとも1つのポリシーが必要です。 各ポリシーは、次の基本構文に従う1つ以上のポリシー・ステートメントで構成されます:

Allow group <group_name> to <verb> <resource-type> in compartment <compartment_name>

ポリシー・ステートメントは、Allowという語で始まります。 ポリシーはアクセスのみを許可し、拒否することはできません。 かわりに、すべてのアクセスが暗黙的に拒否されます。つまり、ユーザーは、権限が付与された権限のみを実行できます。 テナンシ管理者はグループおよびコンパートメントを定義します。使用可能なリソース・タイプはOracleによって決定されます。 ポリシー・ステートメントでの動詞の使用および意味については、第4.5.2項、「ポリシー構文」を参照してください。

テナンシ内のコンパートメントではなくテナンシにポリシーを適用する場合は、ポリシー・ステートメントの末尾を次のように変更します:

Allow group <group_name> to <verb> <resource-type> in tenancy

ポリシーの基本機能は、継承の概念です: コンパートメントは、親コンパートメントからポリシーを継承します。 グループにコンパートメント内の特定のリソース・タイプに対する特定のレベルのアクセス権がある場合、それらの同じ権限は、このポリシーが適用されるコンパートメントのすべてのサブコンパートメントに適用されます。 最も簡単な例は、テナンシの管理者グループです: 組込みポリシーによって、管理者はテナンシ・ルート・コンパートメント内のすべてのリソースを管理できます。 ポリシー継承のため、管理者はすべてのコンパートメントのすべての操作およびすべてのリソースへの完全なアクセス権を持ちます。

リソース・タイプ

ポリシーで使用できるリソース・タイプは、individualまたはfamilyのいずれかです。 ファミリ・リソース・タイプにより、同時に管理される複数の個別のリソース・タイプが含まれるため、ポリシーの書込みが容易になります。 たとえば、virtual-network-familyタイプは、VCNの管理に関連する様々なタイプをまとめます: vcns, subnets, route-tables, security-listsなどより詳細なポリシーを記述する必要がある場合は、個々のリソース・タイプを使用して、それらの特定のリソースのみへのアクセス権を付与します。 アクセス権が付与される条件を指定する機能など、より細かいポリシーを作成する他の方法もあります。

今後のサービス更新では、リソース・タイプ定義が変更または追加される可能性があります。 これらは通常、そのサービスのリソース・ファミリ・タイプに自動的に反映されるため、ポリシーは最新のままです。

一部の操作では、複数のリソース・タイプにアクセスする必要があります。 たとえば、インスタンスを起動するには、インスタンスを作成し、クラウド・ネットワークを操作する権限が必要です。 または、ボリューム・バックアップを作成するには、ボリュームとボリューム・バックアップの両方にアクセスできる必要があります。 つまり、各リソース・タイプにアクセス権を付与する個別の文があります。

これらの個々のステートメントは同じポリシーに存在する必要はありません。 ユーザーは、様々なグループからの必要なアクセス権を取得できます。 たとえば、ユーザーは、volumesリソース・タイプに必要なアクセス・レベルを付与する1つのグループに属し、volume-backupsリソース・タイプに必要なアクセス権を付与する別のグループに属することができます。 個々のステートメントの合計は、ポリシー・セット全体のロケーションに関係なく、ボリューム・バックアップを作成できます。

ポリシー・アタッチメント

ポリシーの別の基本機能は、attachmentの概念です。 ポリシーを作成する場合、それをコンパートメント、またはルート・コンパートメントであるテナンシにアタッチする必要があります。 アタッチした場所で、そのポリシーに対して修正または削除可能なユーザーを制御します。 ポリシーをテナンシにアタッチした場合、そのポリシーは管理者グループによってのみ変更でき、サブコンパートメントへのアクセスのみを持つユーザーは変更できません。

かわりにポリシーを子コンパートメントにアタッチした場合、ポリシーそのコンパートメント内を管理するアクセス権を持つユーザーはポリシーを変更または削除できます。 実質的には、コンパートメント管理者に付与できます - コンパートメント内のすべてのリソースを管理するためのアクセス権を持つグループ - テナンシに存在するポリシーを管理するための幅広いアクセス権を付与することなく、独自のコンパートメント・ポリシーを管理するアクセスを提供します。

ポリシーをコンパートメントにアタッチするには、ポリシーの作成時にそのコンパートメントに存在する必要があります。 ポリシー・ステートメントの一部として、適用するコンパートメントを指定するため、ポリシーを別のコンパートメントにアタッチしようとするとエラーが発生します。 ポリシー・アタッチメントは、作成時に行われ、つまり、1つのコンパートメントにのみポリシーをアタッチできます。

4.5.2 ポリシー構文

ポリシー・ステートメントの全体的な構文は次のとおりです:

Allow <subject> to <verb> <resource-type> in <location> where <conditions>

文の追加のスペースまたは改行は無効です。

件名

名前またはOCIDでグループを指定します。 複数のグループをカンマで区切って指定できます。 テナンシ内のすべてのユーザーをカバーするには、any-userを指定します。

これらの例は、ポリシー・ステートメントでサブジェクトを指定する方法を示しています。

  • 名前で単一のグループを指定するには:

    Allow group A-admins to manage all-resources in compartment Project-A
  • 名前で複数のグループを指定するには(カンマの後のスペースはオプションです):

    Allow group A-admins, B-admins to manage all-resources in compartment Projects
  • OCIDで単一のグループを指定するには(簡潔にするためにOCIDが短縮されます):

    Allow group id ocid1.group.oc1..aaaaaaaaqjihfhvxmum...awuc7i5xwe6s7qmnsbc6a
    to manage all-resources in compartment Project-A
  • OCIDで複数のグループを指定するには(簡潔にするためにOCIDを短縮します):

    Allow 
    group id ocid1.group.oc1..aaaaaaaaqjihfhvxmum...awuc7i5xwe6s7qmnsbc6a, 
    id ocid1.group.oc1..aaaaaaaavhea5mellwzb...66yfxvl462tdgx2oecyq
    to manage all-resources in compartment Projects
  • テナンシのユーザーを指定するには:

    Allow any-user to inspect users in tenancy

動詞

単一の動詞を指定します。

Allow group A-admins to manage all resources in compartment Project-A

ポリシー構文では、権限の増加順に、次の動詞がサポートされています:

動詞

アクセスのタイプ

ターゲット・ユーザー

inspect

リソースの一部である機密情報またはユーザー指定メタデータにアクセスせずに、リソースをリストする機能。

ノート:

  • ポリシーをリストする操作には、ポリシー自体の内容が含まれます。

  • Networkingリソース・タイプのリスト操作では、セキュリティ・リストおよびルート表の内容を含むすべての情報が返されます。

サードパーティ監査者

read

inspectに加えて、ユーザー指定のメタデータと実際のリソース自体を取得する機能が含まれます。

Internal auditors

use

readに加えて、既存のリソースを操作する機能が含まれます。 アクションはリソース・タイプによって異なります。

リソースを更新する機能が含まれますが、「更新」操作が「作成」操作と同じ効果的な影響を及ぼすリソース・タイプ(UpdatePolicyUpdateSecurityListなど)は除きます。この場合、更新機能はmanage動詞でのみ使用できます。 一般に、動詞useには、そのタイプのリソースを作成または削除する機能は含まれません。

リソースの日常的なエンド・ユーザー

manage

リソースに対するすべての権限が含まれる

管理者

動詞は、特定の一般的なアクセス・タイプを提供します。 たとえば、inspectを使用すると、リソースをリストして取得できます。 次に、そのタイプのアクセスをポリシー内の特定のリソース・タイプと結合します。 たとえば、テナンシでグループXYZからinspect compartmentsを許可します。 その結果、このグループは、特定の権限セットおよびAPI操作(ListCompartmentsGetCompartmentなど)へのアクセス権を取得します。

リソース・タイプ

1つのリソース・タイプを指定します。次のことができます:

  • 個々のリソース・タイプ。例: : vcns, subnets, instances, volumes, etc.

  • ファミリ・リソース・タイプ。例: : virtual-network-family, instance-family, volume-family, etc.

    ファミリ・リソース・タイプは、通常一緒に使用される様々な個別のリソース・タイプに対応します。

  • all-resources: コンパートメントまたはテナンシ内のすべてのリソースをカバーします。

これらの例は、ポリシー・ステートメントでリソース・タイプを指定する方法を示しています。

  • 単一のリソース・タイプを指定するには:

    Allow group HelpDesk to manage users in tenancy
  • 複数のリソース・タイプを指定するには、別々の文を使用します:

    Allow group A-users to manage instance-family in compartment Project-A
    Allow group A-users to manage volume-family in compartment Project-A
  • コンパートメントまたはテナンシ内のすべてのリソースを指定するには:

    Allow group A-admins to manage all-resources in compartment Project-A

次に、ポリシー・ステートメントで使用できるファミリ・リソース・タイプの概要を示します:

ファミリ・リソース・タイプ

説明

compute-management-family

この集計リソースは、次の個別のリソース・タイプをカバー: instance-configurations, instance-pools, cluster-networks

instance-family

この集計リソースは、次の個別のリソース・タイプをカバー: app-catalog-listing, console-histories, instances, instance-console-connection, instance-images, volume-attachments

volume-family

この集約リソースは、ブロック・ボリュームに関連するすべての個別のリソース・タイプをカバー: volumes, volume-attachments, volume-backups, boot-volume-backups, backup-policies, backup-policy-assignments, volume-groups, volume-group-backups

virtual-network-family

この集約リソースは、ネットワーキング・サービスに関連するすべての個別のリソース・タイプをカバーします。 次に例を示します: VCN、サブネット、ルート表、ゲートウェイ、VNIC、ネットワーク・セキュリティ・グループなど。

file-family

この集約リソースは、ファイル・ストレージ・サービスに関連するすべての個別のリソース・タイプをカバー: file-systems, mount-targets, export-sets

object-family

この集約リソースは、オブジェクト・ストレージ・サービスに関連するすべての個別のリソース・タイプをカバー: objectstorage-namespaces, buckets, objects

場所

名前またはOCIDで単一のコンパートメントを指定します。 または、テナンシ全体をカバーするtenancyを指定します。 ユーザー、グループおよびコンパートメントはテナンシに存在することに注意してください。 ポリシーは、テナンシまたは子コンパートメントにアタッチできます。

ステートメントのロケーションは必須です。 ポリシーをコンパートメントにアタッチする場合は、ポリシーの作成時にそのコンパートメントに存在する必要があります。

これらの例は、ポリシー・ステートメントでロケーションを指定する方法を示しています。

  • 名前でコンパートメントを指定するには:

    Allow group A-admins to manage all-resources in compartment Project-A
  • OCIDでコンパートメントを指定するには:

    Allow group A-admins to manage all-resources
    in compartment id ocid1.compartment.oc1..aaaaaaaaexampleocid
  • 複数のコンパートメントを指定するには、個別のステートメントを使用します:

    Allow group InstanceAdmins to manage instance-family in compartment Project-A
    Allow group InstanceAdmins to manage instance-family in compartment Project-B
    Allow group InstanceAdmins to manage instance-family
    in compartment id ocid1.compartment.oc1..aaaaaaaayzexampleocid
    Allow group InstanceAdmins to manage instance-family
    in compartment id ocid1.compartment.oc1..abcabcabcexampledocid

条件

1つ以上の条件を指定します。 複数の条件では、論理ORまたはANDにそれぞれanyまたはallを使用します。

条件で使用できる値のタイプは次のとおりです:

値の型

文字列

値には一重引用符が必要です。

'johnsmith@example.com'

'ocid1.compartment.oc1..aaaaaaaaph...ctehnqg756a'

パターン

/HR*/ - "HR"で始まる文字列と一致

/*HR/ - "HR"で終わる文字列と一致

/*HR*/ - "HR"を含む文字列と一致

これらの例は、ポリシー・ステートメントで条件を指定する方法を示しています。

ノート

この例の文では、グループ名を照合する条件により、GroupAdminsですべてのユーザーおよびグループをリストすることはできません。 リスト操作にはグループの指定は伴いません。つまり、条件変数target.group.nameに一致する値がありません。 これを解決するために、inspect動詞を含む文が追加されます。

  • 次のポリシーにより、GroupAdminsグループは、"A-Users-"で始まる名前のグループを作成、更新または削除できます:

    Allow group GroupAdmins to manage groups in tenancy where target.group.name = /A-Users-*/
    Allow group GroupAdmins to inspect groups in tenancy
  • 次のポリシーにより、NetworkAdminsグループは、指定したものを除く任意のコンパートメント内のクラウド・ネットワークを管理できます:

    Allow group NetworkAdmins to manage virtual-network-family in tenancy
    where target.compartment.id != 'ocid1.compartment.oc1..aaaaaaaaexampleocid'
  • 次のポリシーでは、複数の条件が使用され、GroupAdminsでは、A-Adminsグループ自体を除き、名前が"A-"で始まるグループを作成、更新または削除できます:

    Allow group GroupAdmins to manage groups in tenancy
    where all {target.group.name=/A-*/,target.group.name!='A-Admins'}
    Allow group GroupAdmins to inspect groups in tenancy

4.5.3 共通ポリシー

このセクションでは、組織で使用する可能性のある共通ポリシーについて説明します。 これらのポリシーでは、グループ名とコンパートメント名の例を使用します。 必ず自分の名前に置き換えてください。

ヘルプ・デスクにユーザーを管理できるようにします

アクセスのタイプ: ユーザーとその資格証明を作成、更新および削除する機能。 ユーザーをグループに入れる機能は含まれません。

ポリシーを作成する場所: ユーザーがテナンシに存在するため、テナンシ。

Allow group HelpDesk to manage users in tenancy

監査者がリソースを調査できるようにします

アクセスのタイプ: すべてのコンパートメントのリソースをリストする機能。 次の点に注意してください。

  • IAMポリシーをリストする操作には、ポリシー自体の内容が含まれます

  • Networkingリソース・タイプのリスト操作では、すべての情報(セキュリティ・リストおよびルート表のコンテンツなど)が返されます

  • インスタンスをリストする操作には、inspectではなくread動詞が必要で、コンテンツにはユーザー提供のメタデータが含まれます

ポリシーを作成する場所: テナンシ内。 ポリシー継承の概念により、監査者はテナンシとその下にあるすべてのコンパートメントの両方を検査できます。 または、テナンシ全体にアクセスする必要がない場合に、監査者に特定のコンパートメントのみへのアクセス権を付与するように選択できます。

Allow group Auditors to inspect all-resources in tenancy
Allow group Auditors to read instances in tenancy

ネットワーク管理者がクラウド・ネットワークを管理できるようにします

アクセスのタイプ: ネットワーキング内のすべてのコンポーネントを管理する機能。 これには、クラウド・ネットワーク、サブネット、ゲートウェイ、セキュリティ・リスト、ルート表などが含まれます。

ポリシーを作成する場所: テナンシ内。 ポリシー継承の概念により、NetworkAdminsは任意のコンパートメントでクラウド・ネットワークを管理できます。 特定のコンパートメントへのアクセス範囲を減らすには、テナンシのかわりにそのコンパートメントを指定します。

Allow group NetworkAdmins to manage virtual-network-family in tenancy

ユーザーがコンピュート・インスタンスを起動できるようにします

アクセスのタイプ: クラウド・ネットワークに起動されたインスタンスおよびコンパートメントXYZのサブネットのすべての操作を実行し、コンパートメントABCにすでに存在する既存のボリュームをアタッチ/デタッチする機能。 最初のステートメントでは、グループはコンパートメントABCでインスタンス・イメージを作成および管理することもできます。

ポリシーを作成する場所: 最も簡単な方法は、このポリシーをテナンシに配置することです。 個々のコンパートメント(ABCおよびXYZ)の管理者が、コンパートメントの個々のポリシー・ステートメントを制御できるようにするには、これらのポリシー・ステートメントを2つのポリシーに分割し、適用先のコンパートメントにアタッチする必要があります。

Allow group InstanceLaunchers to manage instance-family in compartment ABC
Allow group InstanceLaunchers to use volume-family in compartment ABC
Allow group InstanceLaunchers to use virtual-network-family in compartment XYZ

ユーザーがコンピュート・インスタンス構成、インスタンス・プールおよびクラスタ・ネットワークを管理できるようにします

アクセスのタイプ: すべてのコンパートメントのインスタンス構成、インスタンス・プールおよびクラスタ・ネットワークのすべての操作を実行する機能。

ポリシーを作成する場所: ポリシー継承によってすべてのコンパートメントにアクセス権が容易に付与されるようにするため、テナンシ。 特定のコンパートメントのインスタンス構成、インスタンス・プールおよびクラスタ・ネットワークのみにアクセス範囲を減らすには、テナンシのかわりにそのコンパートメントを指定します。

Allow group InstancePoolAdmins to manage compute-management-family in tenancy

グループがテンプレートとして既存のインスタンスを使用してインスタンス構成を作成し、APIまたはCLIを使用してこれを行う必要がある場合は、次のステートメントをポリシーに追加します:

Allow group InstancePoolAdmins to read instance-family in tenancy
Allow group InstancePoolAdmins to inspect volumes in tenancy

特定のグループが既存のインスタンス・プールのインスタンスを起動、停止またはリセットする必要があるが、インスタンス・プールを作成または削除する必要がない場合は、次の文を使用します:

Allow group InstancePoolUsers to use instance-pools in tenancy

インスタンス・プールで使用されるリソースにデフォルト・タグが含まれている場合は、次の文をポリシーに追加して、タグ・ネームスペースoracle-tagsへのグループ権限を付与します:

Allow group InstancePoolUsers to use tag-namespaces in tenancy where target.tag-namespace.name = 'oracle-tags'

ボリューム管理者がブロック・ボリューム、バックアップおよびボリューム・グループを管理できるようにします

アクセスのタイプ: リージョン間でのボリューム・バックアップのコピーを除き、すべてのコンパートメントのブロック・ストレージ・ボリューム、ボリューム・バックアップおよびボリューム・グループのすべての操作を実行する機能。 これは、単一セットのボリューム管理者がすべてのコンパートメントのすべてのボリューム、ボリューム・バックアップおよびボリューム・グループを管理する場合に意味を持ちます。 インスタンスからボリュームをアタッチ/デタッチするには、2番目の文が必要です。

ポリシーを作成する場所: ポリシー継承によってすべてのコンパートメントにアクセス権が容易に付与されるようにするため、テナンシ。 特定のコンパートメント内のボリューム/バックアップおよびインスタンスのみにアクセス範囲を減らすには、テナンシのかわりにそのコンパートメントを指定します。

Allow group VolumeAdmins to manage volume-family in tenancy
Allow group VolumeAdmins to use instance-family in tenancy

ボリューム・バックアップ管理者がバックアップのみを管理できるようにします

アクセスのタイプ: ボリューム・バックアップのすべての操作を実行できますが、ボリューム自体の作成と管理はできません。 これは、単一セットのボリューム・バックアップ管理者がすべてのコンパートメントのすべてのボリューム・バックアップを管理する場合に意味を持ちます。 1つ目の文は、バックアップ対象のボリュームに必要なアクセス権を付与します。2つ目の文は、バックアップの作成とバックアップの削除を可能にします。 3番目のステートメントでは、ユーザー定義のバックアップ・ポリシーを作成および管理できます。4番目のステートメントでは、バックアップ・ポリシーの割当ておよび削除が可能です。

ポリシーを作成する場所: ポリシー継承によってすべてのコンパートメントにアクセス権が容易に付与されるようにするため、テナンシ。 特定のコンパートメント内のボリュームおよびバックアップのみにアクセス範囲を減らすには、テナンシのかわりにそのコンパートメントを指定します。

Allow group VolumeBackupAdmins to use volumes in tenancy
Allow group VolumeBackupAdmins to manage volume-backups in tenancy
Allow group VolumeBackupAdmins to manage backup-policies in tenancy
Allow group VolumeBackupAdmins to manage backup-policy-assignments in tenancy

グループがCompute Web UIを使用する場合は、次のようにポリシーを拡張してユーザー・エクスペリエンスを向上させます。

Allow group VolumeBackupAdmins to use volumes in tenancy
Allow group VolumeBackupAdmins to manage volume-backups in tenancy
Allow group VolumeBackupAdmins to inspect volume-attachments in tenancy
Allow group VolumeBackupAdmins to inspect instances in tenancy
Allow group VolumeBackupAdmins to manage backup-policies in tenancy
Allow group VolumeBackupAdmins to manage backup-policy-assignments in tenancy

最後の2つの文は厳密には必要ありません。 特定のボリュームおよび使用可能なバックアップ・ポリシーに関するすべての情報を表示できます。

ブート・ボリューム・バックアップ管理者がバックアップのみを管理できるようにします

アクセスのタイプ: ブート・ボリューム・バックアップのすべての操作を実行できますが、ブート・ボリューム自体の作成と管理はできません。 これは、単一セットのブート・ボリューム・バックアップ管理者がすべてのコンパートメントのすべてのブート・ボリューム・バックアップを管理する場合に意味を持ちます。 1つ目のステートメントは、バックアップされるブート・ボリュームに必要なアクセス権を付与します。2つ目のステートメントは、バックアップの作成とバックアップの削除を可能にします。 3番目のステートメントでは、ユーザー定義のバックアップ・ポリシーを作成および管理できます。4番目のステートメントでは、バックアップ・ポリシーの割当ておよび削除が可能です。

ポリシーを作成する場所: ポリシー継承によってすべてのコンパートメントにアクセス権が容易に付与されるようにするため、テナンシ。 特定のコンパートメント内のブート・ボリュームおよびバックアップのみにアクセス範囲を減らすには、テナンシのかわりにそのコンパートメントを指定します。

Allow group BootVolumeBackupAdmins to use volumes in tenancy
Allow group BootVolumeBackupAdmins to manage boot-volume-backups in tenancy
Allow group BootVolumeBackupAdmins to manage backup-policies in tenancy
Allow group BootVolumeBackupAdmins to manage backup-policy-assignments in tenancy

グループがCompute Web UIを使用する場合は、次のようにポリシーを拡張してユーザー・エクスペリエンスを向上させます。

Allow group BootVolumeBackupAdmins to use volumes in tenancy
Allow group BootVolumeBackupAdmins to manage boot-volume-backups in tenancy
Allow group BootVolumeBackupAdmins to inspect instances in tenancy
Allow group BootVolumeBackupAdmins to manage backup-policies in tenancy
Allow group BootVolumeBackupAdmins to manage backup-policy-assignments in tenancy

最後の2つの文は厳密には必要ありません。 特定のボリュームおよび使用可能なバックアップ・ポリシーに関するすべての情報を表示できます。

ユーザーがボリューム・グループを作成できるようにします

アクセスのタイプ: ボリューム・グループをボリューム・セットから作成する機能。

ポリシーを作成する場所: ポリシー継承によってすべてのコンパートメントにアクセス権が容易に付与されるようにするため、テナンシ。 特定のコンパートメント内のボリュームおよびボリューム・グループのみにアクセス範囲を減らすには、テナンシのかわりにそのコンパートメントを指定します。

Allow group VolumeGroupCreators to inspect volumes in tenancy
Allow group VolumeGroupCreators to manage volume-groups in tenancy

ユーザーがボリューム・グループのクローンを作成できるようにします

アクセスのタイプ: 既存のボリューム・グループからボリューム・グループをクローニングする機能。

ポリシーを作成する場所: ポリシー継承によってすべてのコンパートメントにアクセス権が容易に付与されるようにするため、テナンシ。 特定のコンパートメント内のボリュームおよびボリューム・グループのみにアクセス範囲を減らすには、テナンシのかわりにそのコンパートメントを指定します。

Allow group VolumeGroupCloners to inspect volumes in tenancy
Allow group VolumeGroupCloners to manage volume-groups in tenancy
Allow group VolumeGroupCloners to manage volumes in tenancy

ユーザーがボリューム・グループのバックアップを作成できるようにします

アクセスのタイプ: ボリューム・グループ・バックアップを作成する機能。

ポリシーを作成する場所: ポリシー継承によってすべてのコンパートメントにアクセス権が容易に付与されるようにするため、テナンシ。 特定のコンパートメント内のボリューム/バックアップおよびボリューム・グループ/ボリューム・グループ・バックアップのみにアクセス範囲を減らすには、テナンシのかわりにそのコンパートメントを指定します。

Allow group VolumeGroupBackupAdmins to inspect volume-groups in tenancy
Allow group VolumeGroupBackupAdmins to manage volumes in tenancy
Allow group VolumeGroupBackupAdmins to manage volume-group-backups in tenancy
Allow group VolumeGroupBackupAdmins to manage volume-backups in tenancy

ユーザーがボリューム・グループのバックアップをリストアできるようにします

アクセスのタイプ: ボリューム・グループ・バックアップをリストアしてボリューム・グループを作成する機能。

ポリシーを作成する場所: ポリシー継承によってすべてのコンパートメントにアクセス権が容易に付与されるようにするため、テナンシ。 特定のコンパートメント内のボリューム/バックアップおよびボリューム・グループ/ボリューム・グループ・バックアップのみにアクセス範囲を減らすには、テナンシのかわりにそのコンパートメントを指定します。

Allow group VolumeGroupBackupAdmins to inspect volume-group-backups in tenancy
Allow group VolumeGroupBackupAdmins to read volume-backups in tenancy
Allow group VolumeGroupBackupAdmins to manage volume-groups in tenancy
Allow group VolumeGroupBackupAdmins to manage volumes in tenancy

ユーザーがファイル・システムの作成、管理および削除を実行できるようにします

アクセスのタイプ: ファイル・システムを作成、管理または削除する機能。 ファイル・システムの管理機能には、名前の変更や削除、ファイル・システムからの切断などがあります。

ポリシーを作成する場所: ポリシー継承によってファイル・システムを作成、管理または削除する機能がすべてのコンパートメントに容易に付与されるようにするため、テナンシ。 これらの管理機能のスコープを特定のコンパートメント内のファイル・システムに減らすには、テナンシのかわりにそのコンパートメントを指定します。

Allow group StorageAdmins to manage file-family in tenancy

ユーザーがファイル・システムを作成できるようにします

アクセスのタイプ: ファイル・システムを作成する機能。

ポリシーを作成する場所: ポリシー継承によってファイル・システムを作成する機能がすべてのコンパートメントに容易に付与されるようにするため、テナンシ。 これらの管理機能のスコープを特定のコンパートメント内のファイル・システムに減らすには、テナンシのかわりにそのコンパートメントを指定します。

Allow group Managers to manage file-systems in tenancy
Allow group Managers to read mount-targets in tenancy

2つ目の文は、ユーザーがCompute Web UIを介してファイル・システムを作成する場合に必要です。 UIでは、新しいファイル・システムを関連付けることができるマウント・ターゲットのリストを表示できます。

オブジェクト・ストレージ管理者がバケットとオブジェクトを管理できるようにします

アクセスのタイプ: すべてのコンパートメントのオブジェクト・ストレージ・バケットおよびオブジェクトに対してすべての操作を実行する機能。

ポリシーを作成する場所: ポリシー継承によってすべてのコンパートメントにアクセス権が容易に付与されるようにするため、テナンシ。 特定のコンパートメント内のバケットおよびオブジェクトのみにアクセス範囲を減らすには、テナンシのかわりにそのコンパートメントを指定します。

Allow group ObjectAdmins to manage buckets in tenancy
Allow group ObjectAdmins to manage objects in tenancy

ユーザーにオブジェクト・ストレージ・バケットへのオブジェクトの書込みを許可

アクセスのタイプ: コンパートメントABCのオブジェクト・ストレージ・バケットにオブジェクトを書き込む機能。 クライアントが定期的にログ・ファイルをバケットに書き込む必要がある状況を考えてみます。 これには、コンパートメント内のバケットのリスト、バケット内のオブジェクトのリスト、およびバケット内の新規オブジェクトの作成が含まれます。 2つ目の文では、manage動詞による幅広いアクセス権が付与されますが、そのアクセスは、文の最後に条件があるOBJECT_INSPECTおよびOBJECT_CREATE権限のみにスコープ指定されます。

ポリシーを作成する場所: 最も簡単な方法は、このポリシーをテナンシに配置することです。 コンパートメントABCの管理者がポリシーを制御する場合は、そのコンパートメントにアタッチする必要があります。

Allow group ObjectWriters to read buckets in compartment ABC
Allow group ObjectWriters to manage objects in compartment ABC where any {request.permission='OBJECT_CREATE', request.permission='OBJECT_INSPECT'}

特定のコンパートメントの特定のバケットへのアクセスを制限するには、条件where target.bucket.name='<bucket_name>'を追加します。 次のポリシーでは、ユーザーは特定のコンパートメント内のすべてのバケットをリストできますが、オブジェクトをリストしてBucketAにアップロードできるのは、その中のオブジェクトのみです:

Allow group ObjectWriters to read buckets in compartment ABC
Allow group ObjectWriters to manage objects in compartment ABC 
  where all {target.bucket.name='BucketA', any {request.permission='OBJECT_CREATE', request.permission='OBJECT_INSPECT'}}

ユーザーがオブジェクト・ストレージ・バケットからオブジェクトをダウンロードできるようにします

アクセスのタイプ: コンパートメントABCの任意のオブジェクト・ストレージ・バケットからオブジェクトをダウンロードする機能。 これは、コンパートメント内のバケットのリスト、バケット内のオブジェクトのリスト、およびバケット内の既存オブジェクトの読取り機能で構成されます。

ポリシーを作成する場所: 最も簡単な方法は、このポリシーをテナンシに配置することです。 コンパートメントABCの管理者がポリシーを制御する場合は、そのコンパートメントにアタッチする必要があります。

Allow group ObjectReaders to read buckets in compartment ABC
Allow group ObjectReaders to read objects in compartment ABC

特定のコンパートメントの特定のバケットへのアクセスを制限するには、条件where target.bucket.name='<bucket_name>'を追加します。 次のポリシーでは、ユーザーは特定のコンパートメント内のすべてのバケットをリストできますが、BucketAからのみオブジェクトを読み取ってダウンロードできます:

Allow group ObjectReaders to read buckets in compartment ABC
Allow group ObjectReaders to read objects in compartment ABC where target.bucket.name='BucketA'

ユーザーが自分の資格証明を管理できるようにします

ユーザーが自分の資格証明を管理できるようにするためのポリシーは必要ありません。 すべてのユーザーは、自分のパスワードを変更およびリセットし、独自のAPIキーを管理できます。

コンパートメント管理者がコンパートメントを管理できるようにします

アクセスのタイプ: 特定のコンパートメントのすべての側面を管理する機能。 たとえば、A-Adminsというグループは、Project-Aというコンパートメントのすべての側面を管理できます。これには、コンパートメントに影響する追加ポリシーの記述も含まれます。

ポリシーを作成する場所: テナンシ内。

Allow group A-Admins to manage all-resources in compartment Project-A

4.5.4 高度なポリシー機能

この項では、より詳細なアクセス権を付与できるポリシー言語機能について説明します。

4.5.4.1 条件

ポリシー・ステートメントの一部として、アクセスを付与するために満たす必要がある1つ以上の条件を指定できます。 各条件は、ポリシー・ステートメントで値を指定する1つ以上の事前定義された変数で構成されます。 問題のリソース・タイプへのアクセスをリクエストし、ポリシーの条件が満たされると、真実と評価され、リクエストが許可されます。

変数には2つのタイプがあります: リクエスト自体に関連するもの、およびリクエストで処理されるリソースに関連するもの(ターゲットとも呼ばれる)。 変数の名前には、requestまたはtargetの後にピリオドが付きます。 たとえば、request.operationというリクエスト変数は、リクエストされているAPI操作を表します。 この変数を使用すると、広範なポリシー・ステートメントを記述できますが、特定のAPI操作に基づいて条件を追加できます。

注意

条件の一致では、大文字と小文字は区別されません。 これは、大文字と小文字を区別するネーミングを許可するリソース・タイプの条件を記述するときに注意することが重要です。 たとえば、Object Storageサービスでは、BucketAという名前のバケットと、同じコンパートメントにbucketAという名前のバケットの両方を作成できます。 "BucketA"を指定する条件を記述すると、条件一致では大/小文字が区別されないため、"bucketA"にも適用されます。

適用できない変数

一般に、変数が受信リクエストに適用されない場合、条件はfalseに評価され、リクエストは拒否されます。 つまり、ポリシー・ステートメントで動詞とリソース・タイプの組合せによって通常許可されるリクエストは、条件変数の値を指定していないため拒否されます。 条件なしでポリシー・ステートメントに関連付けられたアクセス権を付与する場合は、追加のステートメントを含める必要があります。

たとえば、次のポリシー・ステートメントでは、管理者グループのメンバーでないかぎり、任意のグループに対してユーザーを追加または削除できます。

Allow group GroupAdmins to use users in tenancy where target.group.name != 'Administrators'
Allow group GroupAdmins to use groups in tenancy where target.group.name != 'Administrators'

GroupAdminsのユーザーがListUsersUpdateUserなどの一般API操作をコールすると、操作がuse usersでカバーされていても、リクエストは拒否されます。 これは、listおよびupdateコマンドにグループの指定が含まれないためで、これは、ポリシー・ステートメントの条件でtarget.group.name変数に一致する値がないことを意味します。 変数は受信リクエストに適用できないため、条件は空似に評価され、リクエストは拒否されます。

GroupAdminsでユーザーをリストできるようにするには、条件なしで別のポリシー・ステートメントを追加する必要があります。 この例では、listコマンドを許可するために動詞inspectが必要です。

Allow group GroupAdmins to use users in tenancy where target.group.name != 'Administrators'
Allow group GroupAdmins to use groups in tenancy where target.group.name != 'Administrators'
Allow group GroupAdmins to inspect users in tenancy

この一般的な概念は、グループおよびターゲット変数を持つその他のリソース・タイプにも適用されます。

タグ・ベースのアクセス制御

条件およびタグ変数のセットを使用して、リソースに適用されたタグに基づいてアクセスのスコープを設定するポリシーを記述できます。 具体的には、リクエスト元のユーザーが属するグループに存在するタグの値に基づいてアクセスを制御できます。 タグ・ベースのアクセス制御により、コンパートメント、グループおよびリソースにわたるアクセスを定義できるため、ポリシーに対する柔軟性が向上します。

タグによるアクセスの範囲を指定するポリシーの記述方法の詳細は、タグ付けの概要の章のアクセス制御に関する項を参照してください。

4.5.4.2 権限

権限とは、リソースに対して操作を実行するためのユーザーの能力を制御する、最小単位です。 すべての権限はポリシー言語で定義されます。 特定の動詞とリソース・タイプへのアクセス権をグループに付与するポリシーを記述する場合、実際には、そのグループに1つ以上の事前定義された権限へのアクセス権を付与しています。 動詞の目的は、幅広いアクセス・セットまたは特定の操作シナリオに対応する複数の関連する権限を付与するプロセスを簡素化することです。

動詞との関係

権限と動詞の関係を理解するには、次の例について考えてみます。 グループにinspect volumesを許可するポリシー・ステートメントは、実際にはVOLUME_INSPECTという権限へのアクセスを提供します。 権限は常に、すべての大文字およびアンダースコアで書き込まれます。 通常、この権限により、ユーザーはブロック・ボリュームに関する情報を取得できます。

inspect > read > use > manageから移動すると、通常、アクセス・レベルが増加し、付与される権限は累積されます(次の表を参照)。 この場合、inspectからreadへの追加の権限は付与されません。

ボリュームの検査

読取りボリューム

ボリュームの使用

ボリュームの管理

VOLUME_INSPECT

VOLUME_INSPECT

VOLUME_INSPECT

VOLUME_UPDATE

VOLUME_WRITE

VOLUME_INSPECT

VOLUME_UPDATE

VOLUME_WRITE

VOLUME_CREATE

VOLUME_DELETE

指定されたリソース・タイプの各動詞でカバーされる権限の詳細は、第4.5.5項、「ポリシー・リファレンス」を参照してください。

API操作との関係

各API操作では、コール元が1つ以上の権限へのアクセス権を持つ必要があります。 次に例を示します。

  • ListVolumesまたはGetVolumeを使用するには、単一の権限にアクセスできる必要があります: VOLUME_INSPECT.

  • ボリュームをインスタンスにアタッチするには、様々なリソース・タイプに関連する複数の権限にアクセスできる必要があります: ボリューム、ボリューム・アタッチメントおよびインスタンス。 これらの権限はそれぞれ: VOLUME_WRITE、VOLUME_ATTACHMENT_CREATEおよびINSTANCE_ATTACH_VOLUME。

第4.5.5項、「ポリシー・リファレンス」には、API操作ごとに必要な権限がリストされます。

ユーザー・アクセスについて

ポリシー言語は、文に必要な権限を記述することなく、動詞とリソース・タイプのみを含む単純な文を記述できるように設計されています。 ただし、セキュリティ・チーム・メンバーまたは監査者が、特定のユーザーが持っている特定の権限を理解したい場合があります。 第4.5.5項、「ポリシー・リファレンス」には、各動詞に関連付けられている権限がリストされます。 ユーザーが存在するグループおよびそれらのグループに適用可能なポリシーを確認し、付与された権限のリストをコンパイルします。

ただし、権限のリストは完全な図ではありません。 ポリシー・ステートメントの条件は、個々の権限を超えてユーザー・アクセスの範囲を指定できます。 また、各ポリシー・ステートメントは特定のコンパートメントを指定し、そのコンパートメント内の特定のリソースのみへのアクセスをさらにスコープにする条件を持つことができます。

権限またはAPI操作によるアクセスのスコープ設定

ポリシー・ステートメントでは、権限またはAPI操作と組み合せた条件を使用して、特定の動詞によって付与されるアクセスの範囲を減らすことができます。 たとえば、グループXYZでグループをリスト、取得、作成または更新できますが、削除することはできません。 グループをリスト、取得、作成および更新するには、動詞およびリソース・タイプとしてmanage groupsを含むポリシーが必要ですが、これにはグループを削除する権限が含まれます。

必要な権限のみにアクセスを制限するには、許可する権限を明示的に示す条件を追加します:

Allow group XYZ to manage groups in tenancy 
where any {request.permission='GROUP_INSPECT',
           request.permission='GROUP_CREATE',
           request.permission='GROUP_UPDATE'}

かわりに、GROUP_DELETE以外のすべての権限を許可するポリシーを使用することもできます:

Allow group XYZ to manage groups in tenancy where request.permission != 'GROUP_DELETE'

ただし、このアプローチでは、将来の新しい権限がグループXYZに自動的に付与されます。 GROUP_DELETEのみが省略されます。

別の方法として、特定のAPI操作に基づいて条件を記述する方法があります:

Allow group XYZ to manage groups in tenancy 
where any {request.operation='ListGroups',  
           request.operation='GetGroup',
           request.operation='CreateGroup',
           request.operation='UpdateGroup'}

条件でAPI操作のかわりに権限を使用すると有益です。 今後、前述の権限ベースのポリシーにリストされているいずれかの権限を必要とする新しいAPI操作が追加された場合、そのポリシーでは、その新しいAPI操作へのXYZグループ・アクセスがすでに制御されています。

権限へのユーザー・アクセスは、API操作に基づく条件も指定することによって、さらにスコープを設定できます。 たとえば、GROUP_INSPECTへのアクセス権をユーザーに付与し、ListGroupsにのみ付与できます。

Allow group XYZ to manage groups in tenancy
where all {request.permission='GROUP_INSPECT',request.operation='ListGroups'}

4.5.5 ポリシー参照

このセクションを情報のソースとして使用して、テナンシでアクセス制御のポリシーを記述するのに役立ちます。 次の表に、参照情報を示します:

  • ポリシー・ステートメントを記述できるすべてのリソース・タイプがリストされます。

  • リソース・タイプごとに、ポリシー・ステートメントを介して許可または拒否できるAPI操作がリストされます。

  • API操作ごとに、ポリシー・ステートメントで使用される必要な権限および関連する動詞/リソースの組合せがリストされます。

ノート

一部のAPI操作では、表には権限または動詞/リソースの組合せが表示されません。 これらの空のセルは、操作に明示的な権限が必要ないか、操作が他のAPI操作およびそれらに関連付けられた権限に依存していることを示します。

IAMサービスは、API操作に直接関連付けられている権限のみを認識します。特定のリソースについて他のサービスによって定義された権限依存関係または条件は認識されません。

表には、テナンシで使用可能なサービスでまだサポートされていないリソース・タイプおよびAPI操作が含まれている場合があります。 これらの行は無視できます。

リソース・タイプ

API操作

必要な権限

動詞+リソースの組合せ

users

CreateUser

USER_CREATE

manage users

CreateOrResetUIPassword

USER_UIPASS_SET

manage users

GetUser

USER_INSPECT

inspect users

ListUsers

USER_INSPECT

inspect users

ListApiKeys

USER_READ

read users

UpdateUser

USER_UPDATE

use users

UpdateUserState

USER_UNBLOCK

manage users

UploadApiKey

USER_APIKEY_ADD

manage users

DeleteUser

USER_DELETE

manage users

DeleteApiKey

USER_APIKEY_REMOVE

manage users

AddUserToGroup

USER_UPDATE

use users

RemoveUserFromGroup

USER_UPDATE

use users

GetUserGroupMembership

USER_INSPECT

inspect users

ListUserGroupMemberships

USER_INSPECT

inspect users

groups

CreateGroup

GROUP_CREATE

manage groups

GetGroup

GROUP_INSPECT

inspect groups

ListGroups

GROUP_INSPECT

inspect groups

UpdateGroup

GROUP_UPDATE

use groups

DeleteGroup

GROUP_DELETE

manage groups

AddUserToGroup

GROUP_UPDATE

use groups

RemoveUserFromGroup

GROUP_UPDATE

use groups

GetUserGroupMembership

GROUP_INSPECT

inspect groups

ListUserGroupMemberships

GROUP_INSPECT

inspect groups

ListIdpGroupMappings

GROUP_INSPECT

inspect groups

CreateIdpGroupMapping

GROUP_UPDATE

use groups

GetIdpGroupMapping

GROUP_INSPECT

inspect groups

UpdateIdpGroupMapping

GROUP_UPDATE

use groups

DeleteIdpGroupMapping

GROUP_UPDATE

use groups

compartments

ListCompartments

COMPARTMENT_INSPECT

inspect compartments

GetCompartment

COMPARTMENT_INSPECT

inspect compartments

ListAvailabilityDomains

COMPARTMENT_INSPECT

inspect compartments

ListFaultDomains

COMPARTMENT_INSPECT

inspect compartments

UpdateCompartment

COMPARTMENT_UPDATE

use compartments

CreateCompartment

COMPARTMENT_CREATE

manage compartments

DeleteCompartment

COMPARTMENT_DELETE

manage compartments

RecoverCompartment

COMPARTMENT_RECOVER

manage compartments

MoveCompartment

MANAGE_ALL_RESOURCES

manage all-resources

policies

ListPolicies

POLICY_READ

inspect policies

GetPolicy

POLICY_READ

inspect policies

UpdatePolicy

POLICY_UPDATE

manage policies

CreatePolicy

POLICY_CREATE

manage policies

DeletePolicy

POLICY_DELETE

manage policies

tag-defaults

ListTagDefaults

TAG_DEFAULT_INSPECT

inspect tag-defaults

GetTagDefault

TAG_DEFAULT_INSPECT

inspect tag-defaults

AssembleEffectiveTagSet

TAG_DEFAULT_INSPECT

inspect tag-defaults

CreateTagDefault

TAG_DEFAULT_CREATE

manage tag-defaults

UpdateTagDefault

TAG_DEFAULT_UPDATE

manage tag-defaults

DeleteTagDefault

TAG_DEFAULT_DELETE

manage tag-defaults

tag-namespaces

ListTagNamespaces

TAG_NAMESPACE_INSPECT

inspect tag-namespaces

GetTagNamespace

TAG_NAMESPACE_INSPECT

inspect tag-namespaces

ListTags

TAG_NAMESPACE_INSPECT

inspect tag-namespaces

ListCostTrackingTags

TAG_NAMESPACE_INSPECT

inspect tag-namespaces

GetTag

TAG_NAMESPACE_INSPECT

inspect tag-namespaces

GetTaggingWorkRequest

TAG_NAMESPACE_INSPECT

inspect tag-namespaces

ListTaggingWorkRequests

TAG_NAMESPACE_INSPECT

inspect tag-namespaces

ListTaggingWorkRequestErrors

TAG_NAMESPACE_INSPECT

inspect tag-namespaces

ListTaggingWorkRequestLog

TAG_NAMESPACE_INSPECT

inspect tag-namespaces

CreateTag

TAG_NAMESPACE_USE

use tag-namespaces

UpdateTag

TAG_NAMESPACE_USE

use tag-namespaces

UpdateTagNamespace

TAG_NAMESPACE_UPDATE

manage tag-namespaces

CreateTagNamespace

TAG_NAMESPACE_CREATE

manage tag-namespaces

ChangeTagNamespaceCompartment

TAG_NAMESPACE_MOVE

manage tag-namespaces

DeleteTagNamespace

TAG_NAMESPACE_DELETE

manage tag-namespaces

DeleteTag

TAG_NAMESPACE_DELETE

manage tag-namespaces

tenancies

ListRegionSubscriptions

TENANCY_INSPECT

inspect tenancies

GetTenancy

TENANCY_INSPECT

inspect tenancies

ListRegions

TENANCY_INSPECT

inspect tenancies

CreateRegionSubscription

TENANCY_UPDATE

use tenancies

identity-providers

ListIdentityProviders

IDENTITY_PROVIDER_INSPECT

inspect identity-providers

GetIdentityProvider

IDENTITY_PROVIDER_INSPECT

inspect identity-providers

UpdateIdentityProvider

IDENTITY_PROVIDER_UPDATE

manage identity-providers

CreateIdentityProvider

IDENTITY_PROVIDER_CREATE

manage identity-providers

DeleteIdentityProvider

IDENTITY_PROVIDER_DELETE

manage identity-providers

ListIdpGroupMappings

IDENTITY_PROVIDER_INSPECT

inspect identity-providers

CreateIdpGroupMapping

IDENTITY_PROVIDER_UPDATE

manage identity-providers

GetIdpGroupMapping

IDENTITY_PROVIDER_INSPECT

inspect identity-providers

UpdateIdpGroupMapping

IDENTITY_PROVIDER_UPDATE

manage identity-providers

DeleteIdpGroupMapping

IDENTITY_PROVIDER_UPDATE

manage identity-providers

work-requests

ListWorkRequests

WORKREQUEST_INSPECT

inspect work-requests

GetWorkRequest

WORKREQUEST_INSPECT

inspect work-requests

ListWorkRequestErrors

WORKREQUEST_INSPECT

inspect work-requests

ListWorkRequestLogs

WORKREQUEST_INSPECT

inspect work-requests

instances

ListInstances

INSTANCE_READ

read instances

GetInstance

INSTANCE_READ

read instances

UpdateInstance

INSTANCE_UPDATE

use instances

InstanceAction

INSTANCE_POWER_ACTIONS

use instances

AttachVolume

INSTANCE_ATTACH_VOLUME

use instances

DetachVolume

INSTANCE_DETACH_VOLUME

use instances

ChangeInstanceCompartment

INSTANCE_MOVE

manage instances

LaunchInstance

INSTANCE_CREATE

manage instances

TerminateInstance

INSTANCE_DELETE

manage instances

AttachVnic

INSTANCE_ATTACH_SECONDARY_VNIC

manage instances

DetachVnic

INSTANCE_DETACH_SECONDARY_VNIC

manage instances

ListVnicAttachments

INSTANCE_INSPECT

inspect instances

ListShapes

INSTANCE_INSPECT

inspect instances

CreateImage

INSTANCE_CREATE_IMAGE

use instances

ListInstanceConsoleConnections

INSTANCE_INSPECT

inspect instances

INSTANCE_READ

read instances

GetInstanceConsoleConnection

INSTANCE_READ

read instances

CreateInstanceConsoleConnection

INSTANCE_READ

read instances

ListVolumeAttachments

INSTANCE_INSPECT

inspect instances

ListBootVolumeAttachments

INSTANCE_INSPECT

inspect instances

GetVolumeAttachment

INSTANCE_INSPECT

inspect instances

GetBootVolumeAttachment

INSTANCE_INSPECT

inspect instances

CreateInstancePool

INSTANCE_CREATE

manage instances

TerminateInstancePool

INSTANCE_DELETE

manage instances

ListConsoleHistories

INSTANCE_INSPECT

inspect instances

CreateInstanceConfiguration

INSTANCE_READ

read instances

console-histories

ListConsoleHistories

CONSOLE_HISTORY_INSPECT

inspect console-histories

GetConsoleHistory

CONSOLE_HISTORY_INSPECT

inspect console-histories

ShowConsoleHistoryData

CONSOLE_HISTORY_READ

read console-histories

DeleteConsoleHistory

CONSOLE_HISTORY_DELETE

manage console-histories

CaptureConsoleHistory

CONSOLE_HISTORY_CREATE

manage console-histories

instance-console-connection

ListInstanceConsoleConnections

INSTANCE_CONSOLE_CONNECTION_INSPECT

inspect instance-console-connection

GetInstanceConsoleConnection

INSTANCE_CONSOLE_CONNECTION_READ

read instance-console-connection

DeleteInstanceConsoleConnection

INSTANCE_CONSOLE_CONNECTION_DELETE

manage instance-console-connection

CreateInstanceConsoleConnection

INSTANCE_CONSOLE_CONNECTION_CREATE

manage instance-console-connection

UpdateInstanceConsoleConnection

INSTANCE_CONSOLE_CONNECTION_CREATE

manage instance-console-connection

INSTANCE_CONSOLE_CONNECTION_DELETE

manage instance-console-connection

instance-images

ListImages

INSTANCE_IMAGE_READ

read instance-images

GetImage

INSTANCE_IMAGE_READ

read instance-images

LaunchInstance

INSTANCE_IMAGE_READ

read instance-images

UpdateImage

INSTANCE_IMAGE_UPDATE

use instance-images

DeleteImage

INSTANCE_IMAGE_DELETE

manage instance-images

ChangeImageCompartment

INSTANCE_IMAGE_MOVE

manage instance-images

CreateImage

INSTANCE_IMAGE_CREATE

manage instance-images

CreateInstancePool

INSTANCE_IMAGE_READ

read instance-images

ExportImage

app-catalog-listing

ListAppCatalogSubscriptions

APP_CATALOG_LISTING_INSPECT

inspect app-catalog-listing

CreateAppCatalogSubscription

APP_CATALOG_LISTING_SUBSCRIBE

manage app-catalog-listing

DeleteAppCatalogSubscription

APP_CATALOG_LISTING_SUBSCRIBE

manage app-catalog-listing

volume-attachments-partial

AttachVolume

VOLUME_ATTACHMENT_CREATE

manage volume-attachments-partial

DetachVolume

VOLUME_ATTACHMENT_DELETE

manage volume-attachments-partial

instance-configurations

ListInstanceConfigurations

INSTANCE_CONFIGURATION_INSPECT

inspect instance-configurations

GetInstanceConfiguration

INSTANCE_CONFIGURATION_READ

read instance-configurations

CreateInstanceConfiguration

INSTANCE_CONFIGURATION_CREATE

manage instance-configurations

UpdateInstanceConfiguration

INSTANCE_CONFIGURATION_UPDATE

manage instance-configurations

LaunchInstanceConfiguration

INSTANCE_CONFIGURATION_LAUNCH

manage instance-configurations

DeleteInstanceConfiguration

INSTANCE_CONFIGURATION_DELETE

manage instance-configurations

ChangeInstanceConfigurationCompartment

INSTANCE_CONFIGURATION_MOVE

manage instance-configurations

instance-pools

ListInstancePools

INSTANCE_POOL_INSPECT

inspect instance-pools

GetInstancePool

INSTANCE_POOL_READ

read instance-pools

ListInstancePoolInstances

INSTANCE_POOL_READ

read instance-pools

ResetInstancePool

INSTANCE_POOL_POWER_ACTIONS

use instance-pools

SoftresetInstancePool

INSTANCE_POOL_POWER_ACTIONS

use instance-pools

StartInstancePool

INSTANCE_POOL_POWER_ACTIONS

use instance-pools

StopInstancePool

INSTANCE_POOL_POWER_ACTIONS

use instance-pools

UpdateInstancePool

INSTANCE_POOL_UPDATE

manage instance-pools

ChangeInstancePoolCompartment

INSTANCE_POOL_MOVE

manage instance-pools

CreateInstancePool

INSTANCE_POOL_CREATE

manage instance-pools

TerminateInstancePool

INSTANCE_POOL_DELETE

manage instance-pools

auto-scaling-configurations

ListAutoScalingConfigurations

AUTO_SCALING_CONFIGURATION_INSPECT

inspect auto-scaling-configurations

ListAutoScalingPolicies

AUTO_SCALING_CONFIGURATION_INSPECT

inspect auto-scaling-configurations

GetAutoScalingConfiguration

AUTO_SCALING_CONFIGURATION_READ

read auto-scaling-configurations

GetAutoScalingPolicy

AUTO_SCALING_CONFIGURATION_READ

read auto-scaling-configurations

ChangeAutoScalingConfigurationCompartment

AUTO_SCALING_CONFIGURATION_MOVE

manage auto-scaling-configurations

CreateAutoScalingConfiguration

AUTO_SCALING_CONFIGURATION_CREATE

manage auto-scaling-configurations

UpdateAutoScalingConfiguration

AUTO_SCALING_CONFIGURATION_UPDATE

manage auto-scaling-configurations

DeleteAutoScalingConfiguration

AUTO_SCALING_CONFIGURATION_DELETE

manage auto-scaling-configurations

CreateAutoScalingPolicy

AUTO_SCALING_CONFIGURATION_CREATE

manage auto-scaling-configurations

UpdateAutoScalingPolicy

AUTO_SCALING_CONFIGURATION_UPDATE

manage auto-scaling-configurations

DeleteAutoScalingPolicy

AUTO_SCALING_CONFIGURATION_DELETE

manage auto-scaling-configurations

dedicated-vm-hosts

ListDedicatedVmHosts

DEDICATED_VM_HOST_INSPECT

inspect dedicated-vm-hosts

GetDedicatedVmHost

DEDICATED_VM_HOST_READ

read dedicated-vm-hosts

ListDedicatedVmHostInstances

DEDICATED_VM_HOST_READ

read dedicated-vm-hosts

UpdateDedicatedVmHost

DEDICATED_VM_HOST_UPDATE

use dedicated-vm-hosts

CreateDedicatedVmHost

DEDICATED_VM_HOST_CREATE

manage dedicated-vm-hosts

DeleteDedicatedVmHost

DEDICATED_VM_HOST_DELETE

manage dedicated-vm-hosts

ChangeDedicatedVmHostCompartment

DEDICATED_VM_HOST_MOVE

manage dedicated-vm-hosts

vcns

ListVcns

VCN_READ

inspect vcns

GetVcn

VCN_READ

inspect vcns

CreateVcn

VCN_CREATE

manage vcns

UpdateVcn

VCN_UPDATE

manage vcns

DeleteVcn

VCN_DELETE

manage vcns

ChangeVcnCompartment

VCN_MOVE

manage vcns

CreateDhcpOptions

VCN_ATTACH

manage vcns

DeleteDhcpOptions

VCN_DETACH

manage vcns

CreateInternetGateway

VCN_ATTACH

manage vcns

DeleteInternetGateway

VCN_DETACH

manage vcns

CreateLocalPeeringGateway

VCN_ATTACH

manage vcns

DeleteLocalPeeringGateway

VCN_DETACH

manage vcns

CreateNatGateway

VCN_READ

inspect vcns

VCN_ATTACH

manage vcns

DeleteNatGateway

VCN_READ

inspect vcns

VCN_DETACH

manage vcns

CreateNetworkSecurityGroup

VCN_ATTACH

manage vcns

DeleteNetworkSecurityGroup

VCN_DETACH

manage vcns

DeleteSubnet

VCN_DETACH

manage vcns

CreateSubnet

VCN_ATTACH

manage vcns

CreateServiceGateway

VCN_READ

inspect vcns

VCN_ATTACH

manage vcns

DeleteServiceGateway

VCN_READ

inspect vcns

VCN_DETACH

manage vcns

CreateRouteTable

VCN_ATTACH

manage vcns

DeleteRouteTable

VCN_DETACH

manage vcns

UpdateRouteTable

VCN_ATTACH

manage vcns

VCN_DETACH

manage vcns

CreateDrgAttachment

VCN_ATTACH

manage vcns

DeleteDrgAttachment

VCN_DETACH

manage vcns

subnets

ListSubnets

SUBNET_READ

inspect subnets

GetSubnet

SUBNET_READ

inspect subnets

ChangeSubnetCompartment

SUBNET_MOVE

manage subnets

CreateSubnet

SUBNET_CREATE

manage subnets

DeleteSubnet

SUBNET_DELETE

manage subnets

UpdateSubnet

SUBNET_UPDATE

manage subnets

LaunchInstance

SUBNET_ATTACH

use subnets

TerminateInstance

SUBNET_DETACH

use subnets

AttachVnic

SUBNET_ATTACH

use subnets

DetachVnic

SUBNET_DETACH

use subnets

CreateInstancePool

SUBNET_ATTACH

use subnets

TerminateInstancePool

SUBNET_DETACH

use subnets

CreatePrivateIp

SUBNET_ATTACH

use subnets

CreateMountTarget

SUBNET_ATTACH

use subnets

DeleteMountTarget

SUBNET_DETACH

use subnets

route-tables

ListRouteTables

ROUTE_TABLE_READ

inspect route-tables

GetRouteTable

ROUTE_TABLE_READ

inspect route-tables

ChangeRouteTableCompartment

ROUTE_TABLE_MOVE

manage route-tables

CreateRouteTable

ROUTE_TABLE_CREATE

manage route-tables

DeleteRouteTable

ROUTE_TABLE_DELETE

manage route-tables

UpdateRouteTable

ROUTE_TABLE_UPDATE

manage route-tables

CreateDrgAttachment

ROUTE_TABLE_ATTACH

manage route-tables

UpdateDrgAttachment

ROUTE_TABLE_ATTACH

manage route-tables

CreateLocalPeeringGateway

ROUTE_TABLE_ATTACH

manage route-tables

UpdateLocalPeeringGateway

ROUTE_TABLE_ATTACH

manage route-tables

DeleteSubnet

ROUTE_TABLE_DETACH

manage route-tables

CreateSubnet

ROUTE_TABLE_ATTACH

manage route-tables

UpdateSubnet

ROUTE_TABLE_ATTACH

manage route-tables

ROUTE_TABLE_DETACH

manage route-tables

CreateServiceGateway

ROUTE_TABLE_ATTACH

manage route-tables

UpdateServiceGateway

ROUTE_TABLE_ATTACH

manage route-tables

network-security-groups

CreateNetworkSecurityGroup

NETWORK_SECURITY_GROUP_CREATE

manage network-security-groups

GetNetworkSecurityGroup

NETWORK_SECURITY_GROUP_INSPECT

inspect network-security-groups

ListNetworkSecurityGroups

NETWORK_SECURITY_GROUP_INSPECT

inspect network-security-groups

UpdateNetworkSecurityGroup

NETWORK_SECURITY_GROUP_UPDATE

manage network-security-groups

DeleteNetworkSecurityGroup

NETWORK_SECURITY_GROUP_DELETE

manage network-security-groups

ListNetworkSecurityGroupVnics

NETWORK_SECURITY_GROUP_LIST_MEMBERS

use network-security-groups

ChangeNetworkSecurityGroupCompartment

NETWORK_SECURITY_GROUP_MOVE

manage network-security-groups

ListNetworkSecurityGroupSecurityRules

NETWORK_SECURITY_GROUP_LIST_SECURITY_RULES

use network-security-groups

AddNetworkSecurityGroupSecurityRules

NETWORK_SECURITY_GROUP_UPDATE_SECURITY_RULES

manage network-security-groups

UpdateNetworkSecurityGroupSecurityRules

NETWORK_SECURITY_GROUP_UPDATE_SECURITY_RULES

manage network-security-groups

RemoveNetworkSecurityGroupSecurityRules

NETWORK_SECURITY_GROUP_UPDATE_SECURITY_RULES

manage network-security-groups

LaunchInstance

NETWORK_SECURITY_GROUP_UPDATE_MEMBERS

use network-security-groups

AttachVnic

NETWORK_SECURITY_GROUP_UPDATE_MEMBERS

use network-security-groups

UpdateVnic

NETWORK_SECURITY_GROUP_UPDATE_MEMBERS

use network-security-groups

security-lists

ListSecurityLists

SECURITY_LIST_READ

inspect security-lists

GetSecurityList

SECURITY_LIST_READ

inspect security-lists

UpdateSecurityList

SECURITY_LIST_UPDATE

manage security-lists

ChangeSecurityListCompartment

SECURITY_LIST_MOVE

manage security-lists

CreateSecurityList

SECURITY_LIST_CREATE

manage security-lists

DeleteSecurityList

SECURITY_LIST_DELETE

manage security-lists

DeleteSubnet

SECURITY_LIST_DETACH

manage security-lists

CreateSubnet

SECURITY_LIST_ATTACH

manage security-lists

UpdateSubnet

SECURITY_LIST_ATTACH

manage security-lists

SECURITY_LIST_DETACH

manage security-lists

dhcp-options

CreateDhcpOptions

DHCP_CREATE

manage dhcp-options

GetDhcpOptions

DHCP_READ

inspect dhcp-options

ListDhcpOptions

DHCP_READ

inspect dhcp-options

UpdateDhcpOptions

DHCP_UPDATE

manage dhcp-options

DeleteDhcpOptions

DHCP_DELETE

manage dhcp-options

ChangeDhcpOptionsCompartment

DHCP_MOVE

manage dhcp-options

DeleteSubnet

DHCP_DETACH

manage dhcp-options

CreateSubnet

DHCP_ATTACH

manage dhcp-options

UpdateSubnet

DHCP_ATTACH

manage dhcp-options

DHCP_DETACH

manage dhcp-options

private-ips

GetPrivateIp

PRIVATE_IP_READ

inspect private-ips

ListPrivateIps

PRIVATE_IP_READ

inspect private-ips

ListPublicIps

PRIVATE_IP_READ

inspect private-ips

GetPublicIp

PRIVATE_IP_READ

inspect private-ips

GetPublicIpByPrivateIpId

PRIVATE_IP_READ

inspect private-ips

UpdatePrivateIp

PRIVATE_IP_UPDATE

use private-ips

CreatePrivateIp

PRIVATE_IP_CREATE

use private-ips

PRIVATE_IP_ASSIGN

use private-ips

DeletePrivateIp

PRIVATE_IP_DELETE

use private-ips

PRIVATE_IP_UNASSIGN

use private-ips

CreateRouteTable

PRIVATE_IP_ROUTE_TABLE_ATTACH

manage private-ips

DeleteRouteTable

PRIVATE_IP_ROUTE_TABLE_DETACH

manage private-ips

UpdateRouteTable

PRIVATE_IP_ROUTE_TABLE_ATTACH

manage private-ips

PRIVATE_IP_ROUTE_TABLE_DETACH

manage private-ips

CreateMountTarget

PRIVATE_IP_CREATE

use private-ips

PRIVATE_IP_ASSIGN

use private-ips

DeleteMountTarget

PRIVATE_IP_DELETE

use private-ips

PRIVATE_IP_UNASSIGN

use private-ips

public-ips

GetPublicIp

PUBLIC_IP_READ

read public-ips

ListPublicIps

PUBLIC_IP_READ

read public-ips

GetPublicIpByPrivateIpId

PUBLIC_IP_READ

read public-ips

GetPublicIpByIpAddress

PUBLIC_IP_READ

read public-ips

UpdatePublicIp

PUBLIC_IP_UPDATE

manage public-ips

CreatePublicIp

PUBLIC_IP_CREATE

manage public-ips

DeletePublicIp

PUBLIC_IP_DELETE

manage public-ips

ipv6s

GetIpv6

IPV6_READ

read ipv6s

ListIpv6s

IPV6_READ

read ipv6s

UpdateIpv6

IPV6_UPDATE

manage ipv6s

CreateIpv6

IPV6_CREATE

manage ipv6s

DeleteIpv6

IPV6_DELETE

manage ipv6s

internet-gateways

ListInternetGateways

INTERNET_GATEWAY_READ

inspect internet-gateways

GetInternetGateway

INTERNET_GATEWAY_READ

inspect internet-gateways

UpdateInternetGateway

INTERNET_GATEWAY_UPDATE

manage internet-gateways

ChangeInternetGatewayCompartment

INTERNET_GATEWAY_MOVE

manage internet-gateways

CreateInternetGateway

INTERNET_GATEWAY_CREATE

manage internet-gateways

DeleteInternetGateway

INTERNET_GATEWAY_DELETE

manage internet-gateways

CreateRouteTable

INTERNET_GATEWAY_ATTACH

manage internet-gateways

DeleteRouteTable

INTERNET_GATEWAY_DETACH

manage internet-gateways

UpdateRouteTable

INTERNET_GATEWAY_ATTACH

manage internet-gateways

INTERNET_GATEWAY_DETACH

manage internet-gateways

nat-gateways

ListNatGateways

NAT_GATEWAY_READ

read nat-gateways

GetNatGateway

NAT_GATEWAY_READ

read nat-gateways

UpdateNatGateway

NAT_GATEWAY_UPDATE

manage nat-gateways

ChangeNatGatewayCompartment

NAT_GATEWAY_MOVE

manage nat-gateways

CreateNatGateway

NAT_GATEWAY_CREATE

manage nat-gateways

DeleteNatGateway

NAT_GATEWAY_DELETE

manage nat-gateways

CreateRouteTable

NAT_GATEWAY_ATTACH

use nat-gateways

DeleteRouteTable

NAT_GATEWAY_DETACH

use nat-gateways

UpdateRouteTable

NAT_GATEWAY_ATTACH

use nat-gateways

NAT_GATEWAY_DETACH

use nat-gateways

service-gateways

ListServiceGateways

SERVICE_GATEWAY_READ

inspect service-gateways

GetServiceGateway

SERVICE_GATEWAY_READ

inspect service-gateways

ChangeServiceGatewayCompartment

SERVICE_GATEWAY_MOVE

manage service-gateways

AttachServiceId

SERVICE_GATEWAY_ADD_SERVICE

manage service-gateways

DetachServiceId

SERVICE_GATEWAY_DELETE_SERVICE

manage service-gateways

CreateServiceGateway

SERVICE_GATEWAY_CREATE

manage service-gateways

UpdateServiceGateway

SERVICE_GATEWAY_UPDATE

manage service-gateways

DeleteServiceGateway

SERVICE_GATEWAY_DELETE

manage service-gateways

CreateRouteTable

SERVICE_GATEWAY_ATTACH

use service-gateways

DeleteRouteTable

SERVICE_GATEWAY_DETACH

use service-gateways

UpdateRouteTable

SERVICE_GATEWAY_ATTACH

use service-gateways

SERVICE_GATEWAY_DETACH

use service-gateways

local-peering-gateways

ListLocalPeeringGateways

LOCAL_PEERING_GATEWAY_READ

inspect local-peering-gateways

GetLocalPeeringGateway

LOCAL_PEERING_GATEWAY_READ

inspect local-peering-gateways

CreateLocalPeeringGateway

LOCAL_PEERING_GATEWAY_CREATE

manage local-peering-gateways

UpdateLocalPeeringGateway

LOCAL_PEERING_GATEWAY_UPDATE

manage local-peering-gateways

DeleteLocalPeeringGateway

LOCAL_PEERING_GATEWAY_DELETE

manage local-peering-gateways

ChangeLocalPeeringGatewayCompartment

LOCAL_PEERING_GATEWAY_MOVE

manage local-peering-gateways

CreateRouteTable

LOCAL_PEERING_GATEWAY_ATTACH

manage local-peering-gateways

DeleteRouteTable

LOCAL_PEERING_GATEWAY_DETACH

manage local-peering-gateways

UpdateRouteTable

LOCAL_PEERING_GATEWAY_ATTACH

manage local-peering-gateways

LOCAL_PEERING_GATEWAY_DETACH

manage local-peering-gateways

local-peering-from

ConnectLocalPeeringGateways

LOCAL_PEERING_GATEWAY_CONNECT_FROM

manage local-peering-from

local-peering-to

ConnectLocalPeeringGateways

LOCAL_PEERING_GATEWAY_CONNECT_TO

manage local-peering-to

remote-peering-connections

ListRemotePeeringConnections

REMOTE_PEERING_CONNECTION_READ

inspect remote-peering-connections

GetRemotePeeringConnection

REMOTE_PEERING_CONNECTION_READ

inspect remote-peering-connections

UpdateRemotePeeringConnection

REMOTE_PEERING_CONNECTION_UPDATE

manage remote-peering-connections

CreateRemotePeeringConnection

REMOTE_PEERING_CONNECTION_CREATE

manage remote-peering-connections

DeleteRemotePeeringConnection

REMOTE_PEERING_CONNECTION_DELETE

manage remote-peering-connections

ChangeRemotePeeringConnectionCompartment

REMOTE_PEERING_CONNECTION_RESOURCE_MOVE

manage remote-peering-connections

remote-peering-from

ConnectRemotePeeringConnections

REMOTE_PEERING_CONNECTION_CONNECT_FROM

manage remote-peering-from

remote-peering-to

ConnectRemotePeeringConnections

REMOTE_PEERING_CONNECTION_CONNECT_TO

manage remote-peering-to

drgs

ListDrgs

DRG_READ

inspect drgs

GetDrg

DRG_READ

inspect drgs

CreateDrg

DRG_CREATE

manage drgs

UpdateDrg

DRG_UPDATE

manage drgs

DeleteDrg

DRG_DELETE

manage drgs

ChangeDrgCompartment

DRG_MOVE

manage drgs

CreateDrgAttachment

DRG_ATTACH

manage drgs

DeleteDrgAttachment

DRG_DETACH

manage drgs

CreateRouteTable

DRG_ATTACH

manage drgs

DeleteRouteTable

DRG_DETACH

manage drgs

UpdateRouteTable

DRG_ATTACH

manage drgs

DRG_DETACH

manage drgs

drg-attachments

CreateDrgAttachment

DeleteDrgAttachment

ListDrgAttachments

DRG_ATTACHMENT_READ

inspect drg-attachments

GetDrgAttachment

DRG_ATTACHMENT_READ

inspect drg-attachments

UpdateDrgAttachment

DRG_ATTACHMENT_UPDATE

manage drg-attachments

cpes

ListCpes

CPE_READ

inspect cpes

GetCpe

CPE_READ

inspect cpes

CreateCpe

CPE_CREATE

manage cpes

UpdateCpe

CPE_UPDATE

manage cpes

DeleteCpe

CPE_DELETE

manage cpes

ChangeCpeCompartment

CPE_RESOURCE_MOVE

manage cpes

ipsec

ListIPSecConnections

IPSEC_CONNECTION_READ

inspect ipsec

GetIPSecConnection

IPSEC_CONNECTION_READ

inspect ipsec

GetIPSecConnectionStatus

IPSEC_CONNECTION_READ

inspect ipsec

ListIPSecConnectionTunnels

IPSEC_CONNECTION_READ

inspect ipsec

GetIPSecConnectionTunnel

IPSEC_CONNECTION_READ

inspect ipsec

GetTunnelCpeDeviceConfig

IPSEC_CONNECTION_READ

inspect ipsec

GetTunnelCpeDeviceTemplateContent

IPSEC_CONNECTION_READ

inspect ipsec

GetCpeDeviceTemplateContent

IPSEC_CONNECTION_READ

inspect ipsec

GetIpsecCpeDeviceTemplateContent

IPSEC_CONNECTION_READ

inspect ipsec

GetIPSecConnectionDeviceConfig

IPSEC_CONNECTION_DEVICE_CONFIG_READ

read ipsec

GetIPSecConnectionTunnelSharedSecret

IPSEC_CONNECTION_DEVICE_CONFIG_READ

read ipsec

UpdateIPSecConnection

IPSEC_CONNECTION_UPDATE

manage ipsec

UpdateTunnelCpeDeviceConfig

IPSEC_CONNECTION_UPDATE

manage ipsec

UpdateIPSecConnectionTunnel

IPSEC_CONNECTION_UPDATE

manage ipsec

CreateIPSecConnection

IPSEC_CONNECTION_CREATE

manage ipsec

DeleteIPSecConnection

IPSEC_CONNECTION_DELETE

manage ipsec

cross-connects

ListCrossConnects

CROSS_CONNECT_READ

inspect cross-connects

GetCrossConnect

CROSS_CONNECT_READ

inspect cross-connects

UpdateCrossConnect

CROSS_CONNECT_UPDATE

manage cross-connects

CreateCrossConnect

CROSS_CONNECT_CREATE

manage cross-connects

DeleteCrossConnect

CROSS_CONNECT_DELETE

manage cross-connects

ChangeCrossConnectCompartment

CROSS_CONNECT_RESOURCE_MOVE

manage cross-connects

cross-connect-groups

ListCrossConnectGroups

CROSS_CONNECT_GROUP_READ

inspect cross-connect-groups

GetCrossConnectGroup

CROSS_CONNECT_GROUP_READ

inspect cross-connect-groups

UpdateCrossConnectGroup

CROSS_CONNECT_GROUP_UPDATE

manage cross-connect-groups

CreateCrossConnectGroup

CROSS_CONNECT_GROUP_CREATE

manage cross-connect-groups

DeleteCrossConnectGroup

CROSS_CONNECT_GROUP_DELETE

manage cross-connect-groups

ChangeCrossConnectGroupCompartment

CROSS_CONNECT_GROUP_RESOURCE_MOVE

manage cross-connect-groups

virtual-circuits

ListVirtualCircuits

VIRTUAL_CIRCUIT_READ

inspect virtual-circuits

GetVirtualCircuit

VIRTUAL_CIRCUIT_READ

inspect virtual-circuits

ChangeVirtualCircuitCompartment

VIRTUAL_CIRCUIT_RESOURCE_MOVE

manage virtual-circuits

CreateVirtualCircuit

VIRTUAL_CIRCUIT_CREATE

manage virtual-circuits

DeleteVirtualCircuit

VIRTUAL_CIRCUIT_DELETE

manage virtual-circuits

vnics

GetVnic

VNIC_READ

inspect vnics

AttachVnic

VNIC_ATTACH

use vnics

VNIC_CREATE

use vnics

UpdateVnic

VNIC_UPDATE

use vnics

DetachVnic

VNIC_DETACH

use vnics

VNIC_DELETE

use vnics

LaunchInstance

VNIC_ATTACH

use vnics

VNIC_CREATE

use vnics

TerminateInstance

VNIC_DELETE

use vnics

CreateInstancePool

VNIC_CREATE

use vnics

TerminateInstancePool

VNIC_DELETE

use vnics

CreateInstanceConfiguration

VNIC_READ

inspect vnics

CreatePrivateIp

VNIC_ASSIGN

use vnics

CreateMountTarget

VNIC_ASSIGN

use vnics

VNIC_CREATE

use vnics

VNIC_ATTACH

use vnics

DeleteMountTarget

VNIC_UNASSIGN

use vnics

VNIC_DELETE

use vnics

VNIC_DETACH

use vnics

vnic-attachments

GetVnicAttachment

VNIC_ATTACHMENT_READ

inspect vnic-attachments

ListVnicAttachments

VNIC_ATTACHMENT_READ

inspect vnic-attachments

TerminateInstance

CreateInstanceConfiguration

VNIC_ATTACHMENT_READ

inspect vnic-attachments

cluster-networks

ListClusterNetworks

CLUSTER_NETWORK_INSPECT

inspect cluster-networks

GetClusterNetwork

CLUSTER_NETWORK_READ

read cluster-networks

ListClusterNetworkInstances

CLUSTER_NETWORK_READ

read cluster-networks

UpdateClusterNetwork

CLUSTER_NETWORK_UPDATE

manage cluster-networks

ChangeClusterNetworkCompartment

CLUSTER_NETWORK_MOVE

manage cluster-networks

CreateClusterNetwork

CLUSTER_NETWORK_CREATE

manage cluster-networks

TerminateClusterNetwork

CLUSTER_NETWORK_DELETE

manage cluster-networks

dns-zones

ListZones

DNS_ZONE_INSPECT

inspect dns-zones

CreateZone

DNS_ZONE_CREATE

manage dns-zones

CreateChildZone

DNS_ZONE_CREATE

manage dns-zones

InspectParentZone

DNS_ZONE_INSPECT

inspect dns-zones

DeleteZone

DNS_ZONE_DELETE

manage dns-zones

GetZone

DNS_ZONE_READ

read dns-zones

UpdateZone

DNS_ZONE_UPDATE

use dns-zones

ChangeZoneCompartment

DNS_ZONE_MOVE

manage dns-zones

CreateSteeringPolicyAttachment

DNS_ZONE_UPDATE

use dns-zones

UpdateSteeringPolicyAttachment

DNS_ZONE_UPDATE

use dns-zones

DeleteSteeringPolicyAttachment

DNS_ZONE_UPDATE

use dns-zones

GetZoneRecords

DNS_ZONE_READ

read dns-zones

PatchZoneRecords

DNS_ZONE_UPDATE

use dns-zones

UpdateZoneRecords

DNS_ZONE_UPDATE

use dns-zones

dns-records

GetZoneRecords

DNS_RECORD_READ

read dns-records

PatchZoneRecords

DNS_RECORD_UPDATE

use dns-records

UpdateZoneRecords

DNS_RECORD_UPDATE

use dns-records

GetDomainRecords

DNS_RECORD_READ

read dns-records

DeleteDomainRecords

DNS_RECORD_DELETE

manage dns-records

PatchDomainRecords

DNS_RECORD_UPDATE

use dns-records

UpdateDomainRecords

DNS_RECORD_UPDATE

use dns-records

DeleteRRSet

DNS_RECORD_UPDATE

use dns-records

GetRRSet

DNS_RECORD_READ

read dns-records

PatchRRSet

DNS_RECORD_UPDATE

use dns-records

UpdateRRSet

DNS_RECORD_UPDATE

use dns-records

dns-steering-policies

ListSteeringPolicies

DNS_STEERING_POLICY_INSPECT

inspect dns-steering-policies

CreateSteeringPolicy

DNS_STEERING_POLICY_CREATE

manage dns-steering-policies

GetSteeringPolicy

DNS_STEERING_POLICY_READ

read dns-steering-policies

UpdateSteeringPolicy

DNS_STEERING_POLICY_UPDATE

use dns-steering-policies

DeleteSteeringPolicy

DNS_STEERING_POLICY_DELETE

manage dns-steering-policies

ChangeSteeringPolicyCompartment

DNS_STEERING_POLICY_MOVE

manage dns-steering-policies

CreateSteeringPolicyAttachment

DNS_STEERING_POLICY_READ

read dns-steering-policies

UpdateSteeringPolicyAttachment

DNS_STEERING_POLICY_READ

read dns-steering-policies

DeleteSteeringPolicyAttachment

DNS_STEERING_POLICY_READ

read dns-steering-policies

dns-steering-policy-attachments

ListSteeringPolicyAttachments

DNS_STEERING_ATTACHMENT_INSPECT

inspect dns-steering-policy-attachments

CreateSteeringPolicyAttachment

GetSteeringPolicyAttachment

DNS_STEERING_ATTACHMENT_READ

read dns-steering-policy-attachments

UpdateSteeringPolicyAttachment

DeleteSteeringPolicyAttachment

dns-tsig-keys

ListTsigKeys

DNS_TSIG_KEY_INSPECT

inspect dns-tsig-keys

CreateTsigKey

DNS_TSIG_KEY_CREATE

manage dns-tsig-keys

GetTsigKey

DNS_TSIG_KEY_READ

read dns-tsig-keys

UpdateTsigKey

DNS_TSIG_KEY_UPDATE

use dns-tsig-keys

DeleteTsigKey

DNS_TSIG_KEY_DELETE

manage dns-tsig-keys

ChangeTsigKeyCompartment

DNS_TSIG_KEY_MOVE

manage dns-tsig-keys

dns-views

ListViews

DNS_VIEW_INSPECT

inspect dns-views

CreateView

DNS_VIEW_CREATE

manage dns-views

GetView

DNS_VIEW_READ

read dns-views

UpdateView

DNS_VIEW_UPDATE

use dns-views

DeleteView

DNS_VIEW_DELETE

manage dns-views

ChangeViewCompartment

DNS_VIEW_MOVE

manage dns-views

dns-resolvers

ListResolvers

DNS_RESOLVER_INSPECT

inspect dns-resolvers

GetResolver

DNS_RESOLVER_READ

read dns-resolvers

UpdateResolver

DNS_RESOLVER_UPDATE

use dns-resolvers

ChangeResolverCompartment

DNS_RESOLVER_MOVE

manage dns-resolvers

dns-resolver-endpoint

ListResolverEndpoints

DNS_RESOLVER_ENDPOINT_INSPECT

inspect dns-resolver-endpoint

CreateResolverEndpoint

DNS_RESOLVER_ENDPOINT_CREATE

manage dns-resolver-endpoint

GetResolverEndpoint

DNS_RESOLVER_ENDPOINT_READ

read dns-resolver-endpoint

UpdateResolverEndpoint

DNS_RESOLVER_ENDPOINT_UPDATE

use dns-resolver-endpoint

DeleteResolverEndpoint

DNS_RESOLVER_ENDPOINT_DELETE

manage dns-resolver-endpoint

objectstorage-namespaces

GetNamespace

GetNamespaceMetadata

OBJECTSTORAGE_NAMESPACE_READ

read objectstorage-namespaces

UpdateNamespaceMetadata

OBJECTSTORAGE_NAMESPACE_UPDATE

manage objectstorage-namespaces

buckets

HeadBucket

BUCKET_INSPECT

inspect buckets

ListBuckets

BUCKET_INSPECT

inspect buckets

GetBucket

BUCKET_READ

read buckets

ListMultipartUploads

BUCKET_READ

read buckets

GetObjectLifecyclePolicy

BUCKET_READ

read buckets

GetRetentionRule

BUCKET_READ

read buckets

ListRetentionRules

BUCKET_READ

read buckets

GetReplicationPolicy

BUCKET_READ

read buckets

ListReplicationPolicies

BUCKET_READ

read buckets

ListReplicationSources

BUCKET_READ

read buckets

UpdateBucket

BUCKET_UPDATE

use buckets

DeleteObjectLifecyclePolicy

BUCKET_UPDATE

use buckets

ReencryptBucket

BUCKET_UPDATE

use buckets

CreateBucket

BUCKET_CREATE

manage buckets

DeleteBucket

BUCKET_DELETE

manage buckets

CreatePar

PAR_MANAGE

manage buckets

GetPar

PAR_MANAGE

manage buckets

ListPars

PAR_MANAGE

manage buckets

DeletePar

PAR_MANAGE

manage buckets

CreateRetentionRule

RETENTION_RULE_LOCK

manage buckets

UpdateRetentionRule

RETENTION_RULE_LOCK

manage buckets

DeleteRetentionRule

RETENTION_RULE_LOCK

manage buckets

MakeBucketWritable

BUCKET_READ

read buckets

BUCKET_UPDATE

use buckets

CreateReplicationPolicy

BUCKET_READ

read buckets

BUCKET_UPDATE

use buckets

DeleteReplicationPolicy

BUCKET_READ

read buckets

BUCKET_UPDATE

use buckets

PutObjectLifecyclePolicy

BUCKET_UPDATE

use buckets

objects

HeadObject

OBJECT_INSPECT

inspect objects

ListObjects

OBJECT_INSPECT

inspect objects

ListMultipartUploadParts

OBJECT_INSPECT

inspect objects

CreateObject

OBJECT_CREATE

manage objects

GetObject

OBJECT_READ

read objects

ReencryptObject

OBJECT_OVERWRITE

use objects

RenameObject

OBJECT_CREATE

manage objects

OBJECT_OVERWRITE

use objects

RestoreObject

OBJECT_RESTORE

manage objects

DeleteObject

OBJECT_DELETE

manage objects

DeleteObjectVersion

OBJECT_VERSION_DELETE

manage objects

CreateMultipartUpload

OBJECT_CREATE

manage objects

OBJECT_OVERWRITE

use objects

UploadPart

OBJECT_CREATE

manage objects

OBJECT_OVERWRITE

use objects

CommitMultipartUpload

OBJECT_CREATE

manage objects

OBJECT_OVERWRITE

use objects

AbortMultipartUpload

OBJECT_DELETE

manage objects

PutObject

OBJECT_CREATE

manage objects

('PutObject', 'overwrite')

OBJECT_OVERWRITE

use objects

CreateCopyRequest

OBJECT_READ

read objects

OBJECT_CREATE

manage objects

OBJECT_OVERWRITE

use objects

OBJECT_INSPECT

inspect objects

CopyObject

OBJECT_READ

read objects

OBJECT_CREATE

manage objects

OBJECT_OVERWRITE

use objects

OBJECT_INSPECT

inspect objects

export-sets

CreateExport

EXPORT_SET_UPDATE

manage export-sets

GetExport

EXPORT_SET_READ

read export-sets

ListExports

EXPORT_SET_READ

read export-sets

UpdateExport

EXPORT_SET_UPDATE

manage export-sets

DeleteExport

EXPORT_SET_UPDATE

manage export-sets

CreateExportSet

EXPORT_SET_CREATE

manage export-sets

GetExportSet

EXPORT_SET_READ

read export-sets

ListExportSets

EXPORT_SET_INSPECT

inspect export-sets

UpdateExportSet

EXPORT_SET_UPDATE

manage export-sets

DeleteExportSet

EXPORT_SET_DELETE

manage export-sets

file-systems

ListFileSystems

FILE_SYSTEM_INSPECT

inspect file-systems

GetFileSystem

FILE_SYSTEM_READ

read file-systems

CreateFileSystem

FILE_SYSTEM_CREATE

manage file-systems

UpdateFileSystem

FILE_SYSTEM_UPDATE

manage file-systems

DeleteFileSystem

FILE_SYSTEM_DELETE

manage file-systems

ChangeFileSystemCompartment

FILE_SYSTEM_MOVE

manage file-systems

CreateSnapshot

FILE_SYSTEM_CREATE_SNAPSHOT

manage file-systems

DeleteSnapshot

FILE_SYSTEM_DELETE_SNAPSHOT

manage file-systems

GetSnapshot

FILE_SYSTEM_READ

read file-systems

ListSnapshots

FILE_SYSTEM_READ

read file-systems

UpdateSnapshot

FILE_SYSTEM_UPDATE

manage file-systems

mount-targets

ListMountTargets

MOUNT_TARGET_INSPECT

inspect mount-targets

GetMountTarget

MOUNT_TARGET_READ

read mount-targets

UpdateMountTarget

MOUNT_TARGET_UPDATE

manage mount-targets

ChangeMountTargetCompartment

MOUNT_TARGET_MOVE

manage mount-targets

CreateMountTarget

MOUNT_TARGET_CREATE

manage mount-targets

DeleteMountTarget

MOUNT_TARGET_DELETE

manage mount-targets

volumes

ListVolumes

VOLUME_INSPECT

inspect volumes

GetVolume

VOLUME_INSPECT

inspect volumes

UpdateVolume

VOLUME_UPDATE

use volumes

GetBootVolume

VOLUME_INSPECT

inspect volumes

ListBootVolumes

VOLUME_INSPECT

inspect volumes

UpdateBootVolume

VOLUME_UPDATE

use volumes

DeleteBootVolume

VOLUME_DELETE

manage volumes

CreateVolume

VOLUME_CREATE

manage volumes

CreateBootVolume

VOLUME_CREATE

manage volumes

DeleteVolume

VOLUME_DELETE

manage volumes

AttachVolume

VOLUME_WRITE

use volumes

DetachVolume

VOLUME_WRITE

use volumes

TerminateInstance

VOLUME_WRITE

use volumes

ListVolumeAttachments

VOLUME_INSPECT

inspect volumes

ListBootVolumeAttachments

VOLUME_INSPECT

inspect volumes

GetVolumeAttachment

VOLUME_INSPECT

inspect volumes

GetBootVolumeAttachment

VOLUME_INSPECT

inspect volumes

ChangeVolumeCompartment

VOLUME_MOVE

manage volumes

ChangeBootVolumeCompartment

BOOT_VOLUME_MOVE

manage volumes

TerminateInstancePool

VOLUME_WRITE

use volumes

CreateInstanceConfiguration

VOLUME_INSPECT

inspect volumes

CreateBootVolumeBackup

VOLUME_WRITE

use volumes

UpdateVolumeBackup

VOLUME_INSPECT

inspect volumes

UpdateBootVolumeBackup

VOLUME_INSPECT

inspect volumes

ListVolumeBackups

VOLUME_INSPECT

inspect volumes

CreateVolumeGroupBackup

VOLUME_WRITE

use volumes

CreateVolumeGroup

VOLUME_INSPECT

inspect volumes

VOLUME_CREATE

manage volumes

VOLUME_WRITE

use volumes

UpdateVolumeGroup

VOLUME_INSPECT

inspect volumes

DeleteVolumeBackup

VOLUME_INSPECT

inspect volumes

GetVolumeBackupPolicyAssetAssignment

VOLUME_INSPECT

inspect volumes

ChangeVolumeGroupCompartment

VOLUME_MOVE

manage volumes

BOOT_VOLUME_MOVE

manage volumes

volume-attachments

ListVolumeAttachments

VOLUME_ATTACHMENT_INSPECT

inspect volume-attachments

ListBootVolumeAttachments

VOLUME_ATTACHMENT_INSPECT

inspect volume-attachments

GetVolumeAttachment

VOLUME_ATTACHMENT_INSPECT

inspect volume-attachments

GetBootVolumeAttachment

VOLUME_ATTACHMENT_INSPECT

inspect volume-attachments

AttachVolume

VOLUME_ATTACHMENT_CREATE

manage volume-attachments

AttachBootVolume

VOLUME_ATTACHMENT_CREATE

manage volume-attachments

DetachVolume

VOLUME_ATTACHMENT_DELETE

manage volume-attachments

DetachBootVolume

VOLUME_ATTACHMENT_DELETE

manage volume-attachments

TerminateInstance

VOLUME_ATTACHMENT_DELETE

manage volume-attachments

TerminateInstancePool

VOLUME_ATTACHMENT_DELETE

manage volume-attachments

CreateInstanceConfiguration

VOLUME_ATTACHMENT_INSPECT

inspect volume-attachments

volume-backups

ListVolumeBackups

VOLUME_BACKUP_INSPECT

inspect volume-backups

GetVolumeBackup

VOLUME_BACKUP_INSPECT

inspect volume-backups

UpdateVolumeBackup

VOLUME_BACKUP_UPDATE

use volume-backups

CopyVolumeBackup

VOLUME_BACKUP_COPY

use volume-backups

CreateVolumeBackup

VOLUME_BACKUP_CREATE

manage volume-backups

DeleteVolumeBackup

VOLUME_BACKUP_DELETE

manage volume-backups

CreateVolume

VOLUME_BACKUP_READ

read volume-backups

CreateVolumeGroupBackup

VOLUME_BACKUP_CREATE

manage volume-backups

CreateVolumeGroup

VOLUME_BACKUP_READ

read volume-backups

DeleteVolumeGroupBackup

VOLUME_BACKUP_DELETE

manage volume-backups

ChangeVolumeBackupCompartment

VOLUME_BACKUP_MOVE

manage volume-backups

ChangeVolumeGroupBackupCompartment

VOLUME_BACKUP_MOVE

manage volume-backups

boot-volume-backups

ListBootVolumeBackups

BOOT_VOLUME_BACKUP_INSPECT

inspect boot-volume-backups

GetBootVolumeBackup

BOOT_VOLUME_BACKUP_INSPECT

inspect boot-volume-backups

CreateBootVolume

BOOT_VOLUME_BACKUP_READ

read boot-volume-backups

UpdateBootVolumeBackup

BOOT_VOLUME_BACKUP_UPDATE

use boot-volume-backups

CopyBootVolumeBackup

BOOT_VOLUME_BACKUP_COPY

use boot-volume-backups

CreateBootVolumeBackup

BOOT_VOLUME_BACKUP_CREATE

manage boot-volume-backups

DeleteBootVolumeBackup

BOOT_VOLUME_BACKUP_DELETE

manage boot-volume-backups

CreateVolumeGroupBackup

BOOT_VOLUME_BACKUP_CREATE

manage boot-volume-backups

CreateVolumeGroup

BOOT_VOLUME_BACKUP_READ

read boot-volume-backups

DeleteVolumeGroupBackup

BOOT_VOLUME_BACKUP_DELETE

manage boot-volume-backups

ChangeVolumeBackupCompartment

BOOT_VOLUME_BACKUP_MOVE

manage boot-volume-backups

ChangeBootVolumeBackupCompartment

BOOT_VOLUME_BACKUP_MOVE

manage boot-volume-backups

ChangeVolumeGroupBackupCompartment

BOOT_VOLUME_BACKUP_MOVE

manage boot-volume-backups

backup-policies

ListVolumeBackupPolicies

BACKUP_POLICIES_INSPECT

inspect backup-policies

GetVolumeBackupPolicy

BACKUP_POLICIES_INSPECT

inspect backup-policies

UpdateVolumeBackupPolicy

BACKUP_POLICIES_UPDATE

use backup-policies

CreateVolumeBackupPolicy

BACKUP_POLICIES_CREATE

manage backup-policies

DeleteVolumeBackupPolicy

BACKUP_POLICIES_DELETE

manage backup-policies

backup-policy-assignments

GetVolumeBackupPolicyAssignment

BACKUP_POLICY_ASSIGNMENT_INSPECT

inspect backup-policy-assignments

GetVolumeBackupPolicyAssetAssignment

BACKUP_POLICY_ASSIGNMENT_INSPECT

inspect backup-policy-assignments

CreateVolumeBackupPolicyAssignment

BACKUP_POLICY_ASSIGNMENT_CREATE

manage backup-policy-assignments

DeleteVolumeBackupPolicyAssignment

BACKUP_POLICY_ASSIGNMENT_DELETE

manage backup-policy-assignments

volume-groups

ListVolumeGroups

VOLUME_GROUP_INSPECT

inspect volume-groups

GetVolumeGroup

VOLUME_GROUP_INSPECT

inspect volume-groups

DeleteVolumeGroup

VOLUME_GROUP_DELETE

manage volume-groups

UpdateVolumeGroup

VOLUME_GROUP_UPDATE

manage volume-groups

CreateVolumeGroup

VOLUME_GROUP_CREATE

manage volume-groups

CreateVolumeGroupBackup

VOLUME_GROUP_INSPECT

inspect volume-groups

ChangeVolumeGroupCompartment

VOLUME_GROUP_MOVE

manage volume-groups

volume-group-backups

ListVolumeGroupBackups

VOLUME_GROUP_BACKUP_INSPECT

inspect volume-group-backups

GetVolumeGroupBackup

VOLUME_GROUP_BACKUP_INSPECT

inspect volume-group-backups

UpdateVolumeGroupBackup

VOLUME_GROUP_BACKUP_UPDATE

manage volume-group-backups

CreateVolumeGroupBackup

VOLUME_GROUP_BACKUP_CREATE

manage volume-group-backups

DeleteVolumeGroupBackup

VOLUME_GROUP_BACKUP_DELETE

manage volume-group-backups

CreateVolumeGroup

VOLUME_GROUP_BACKUP_INSPECT

inspect volume-group-backups

ChangeVolumeGroupBackupCompartment

VOLUME_GROUP_BACKUP_MOVE

manage volume-group-backups

clusters

ListClusters

CLUSTER_INSPECT

inspect clusters

CreateCluster

CLUSTER_CREATE

manage clusters

GetClusterKubeconfig

CLUSTER_USE

use clusters

GetCluster

CLUSTER_READ

read clusters

UpdateCluster

CLUSTER_UPDATE

manage clusters

DeleteCluster

CLUSTER_DELETE

manage clusters

AdministerK8s

CLUSTER_MANAGE

manage clusters

cluster-node-pools

ListNodePools

CLUSTER_NODE_POOL_INSPECT

inspect cluster-node-pools

CreateNodePool

CLUSTER_NODE_POOL_CREATE

manage cluster-node-pools

GetNodePool

CLUSTER_NODE_POOL_READ

read cluster-node-pools

GetNodePoolOptions

UpdateNodePool

CLUSTER_NODE_POOL_UPDATE

manage cluster-node-pools

DeleteNodePool

CLUSTER_NODE_POOL_DELETE

manage cluster-node-pools