クラウド・シェル
Oracle Cloud Infrastructure (OCI)クラウド・シェルは、Oracle CloudコンソールからアクセスできるWebブラウザベースのターミナルです。月次テナンシ制限内であれば無償で使用でき、Linuxシェルへのアクセスを可能にするクラウド・シェルでは、Oracle Cloud Infrastructure CLIとAnsibleインストールが事前に認証されていて、Oracle Cloud Infrastructureサービスのチュートリアルとラボに従ったその他の便利なツールが用意されています。クラウド・シェルはすべてのOCIユーザーが使用できる機能で、コンソールからアクセス可能です。クラウド・シェルは、コンソールの永続フレームとしてOracle Cloudコンソールに表示され、コンソールの別のページに移動してもアクティブなままです。
クラウド・シェルの提供内容:
-
最新バージョンのOCIコマンドライン・インタフェース(CLI)と多数の便利なツールが事前に構成された、Linuxシェルのホストとして使用するエフェメラル・マシン
-
ホーム・ディレクトリ用に5GBのストレージ
-
コンソールの別のページに移動してもアクティブなままであるコンソールの永続フレーム
クラウド・シェルの仕組み
クラウド・シェル・マシンは、OCIコンソールからアクセスするBashシェルを実行する、小さな仮想マシンです。クラウド・シェルには、事前認証済のOCI CLIが付属しています。コンソール・テナンシのホーム・ページ領域に設定され、最新のツールおよびユーティリティも用意されています。
クラウド・シェルには、ホーム・ディレクトリ用に5GBの永続ストレージが付属しているため、ホーム・ディレクトリにローカルで変更を加えた後、クラウド・シェルに戻ったときにプロジェクトで作業を続行できます。
クラウド・シェルは(月次テナンシ制限内で)無償で使用でき、クラウド・シェルへのアクセス権を付与するIAMポリシー以外の設定または前提条件が必要ありません。クラウド・シェルには、それ自体のテナンシで実行されるVMがプロビジョニングされています(テナンシのリソースが使用されないため)。また、クラウド・シェルをアクティブに使用している間に、Oracle Linux OSでシェルをホストします。
クラウド・シェルに含まれるもの
OCI CLIに加え、クラウド・シェルVMには、次に示すような数多くの便利なツールとユーティリティの最新のバージョンが事前にインストールされています:
- Git
- Java
- Python (2および3)
- GraalVMエンタープライズJDK 17およびネイティブ・イメージ
- SQL Plus
- kubectl
- helm
- maven
- gradle
- terraform
- ansible
- node.js
- iputils
- jqmake
- tmux
- vim
- NPM
- wget
- 圧縮/解凍
- nano
- emacs
- pip
- bash
- sh
- tar
- nvm
- mysql-community-client
- Dockerエンジン
- ipython
- oci-powershell-modules
- GoldenGate Admin client
- 次を含むほとんどのOCI SDK:
- Java
- Python
- Go
- TypeScriptおよびJavaScript
- Ruby
必要なIAMポリシー
クラウド・シェルを開始するには、IAMポリシーを介して、クラウド・シェルへのアクセス権をユーザーに付与する必要があります。Oracle Cloud Infrastructureの各サービスは、すべてのインタフェース(コンソール、SDKまたはCLI、およびREST API)の認証および認可のためにIAMと統合されています。
Oracle Cloud Infrastructureを使用するには、コンソールまたはSDK、CLIまたはその他のツールを使用したREST APIのどれを使用しているかにかかわらず、テナンシのルート・コンパートメントにおいて、管理者が記述するポリシーによって必要なアクセスのタイプを付与されている必要があります。アクションを実行しようとしたときに、権限がない、または認可されていないというメッセージが表示された場合は、アクセス権が付与されていることを管理者に確認してください。
クラウド・シェルは、コンパートメント・レベルでのポリシーをサポートしていません。テナンシ・レベルのみです。
allow group <GROUP-NAME> to use cloud-shell in tenancy
allow group <DOMAIN-NAME>/<GROUP-NAME> to use cloud-shell in tenancy
クラウド・シェルの制限
クラウド・シェルを使用する際は、次の制限事項に注意してください:
- クラウド・シェルには、VMのホーム・ディレクトリ用に5GBのストレージが付属しています。このストレージはセッション間で維持されますが、6か月を超えて使用していない場合、テナンシの管理者は60日以内にストレージが削除されることを示す通知を受け取ります。クラウド・シェル・セッションを開始すると、ストレージ削除タイマーがリセットされます。
- クラウド・シェルでは、追加ストレージのマウントはサポートされていません。
- クラウド・シェルでは、ユーザー・ファイルのマルウェアやウィルスはスキャンされません。
- クラウド・シェルのセッションでは着信接続が許可されないため、パブリックIPアドレスはありません。
- OCI CLIでは、クラウド・シェルの起動時に、コンソールの「リージョン」選択メニューで選択されているリージョンに対してコマンドが実行されます。コンソールでリージョンの選択を変更しても、既存のクラウド・シェル・インスタンスのリージョンは変更されません。新しいクラウド・シェル・インスタンスを開いてリージョンを変更する必要があります。
- クラウド・シェル・セッションの最大長は24時間で、60分非アクティブ状態が続くと、タイムアウトします。
-
クラウド・シェルは、ブラウザとサービス間の通信にWebSocketを使用します。ブラウザでWebSocketが無効になっているか、WebSocketが無効になっている企業プロキシを使用している場合、コンソールからクラウド・シェルを起動しようとすると、エラー・メッセージ(「予期しないエラーが発生しました」)が表示されます。
- クラウド・シェルは、Oracle Cloud Infrastructureリソースとの対話型の使用を目的として設計されています。クラウド・シェルに追加のストレージが必要なユーザー、または実行に長い時間がかかる非対話型のタスクを実行する必要があるユーザーのテナンシには、コンピュート・リソースおよびストレージ・リソースの使用をお薦めします。
- 互換性を最大化するために、クラウド・シェルにはPythonバージョン2およびPythonバージョン3が含まれています。Python 2は、コマンドラインで「python」と入力したときに実行されるデフォルトです。Python 3を実行するには、コマンドラインで「python3」と入力します。
- 次の予約語はクラウド・シェル・ユーザーのユーザー名として使用できません:
oci
、root
、bin
、daemon
、adm
、lp
、sync
、shutdown
、halt
、mai
、operator
、games
、ftp
、nobody
、oci
、systemd-network
、dbus
、polkitd
、tss
およびapache
。これらの予約語の1つであるユーザー名(またはユーザー名が電子メール・アドレスの場合は@記号の前の名前の一部)でログインしたときに、クラウド・シェル・セッションを作成しようとすると、「予期しないエラー」メッセージが表示されます。 - すべて数字のユーザー名(たとえば、"1234")は、クラウド・シェルでサポートされていません。
- クラウド・シェルのセッションのタイム・ゾーンはUTCで、変更はできません。
- クラウド・シェルではルート・アクセスができず、sudoも使用できないため、インストールにルート・アクセスが必要なパッケージはインストールできません。インストールにルートを必要としないバージョンのパッケージが多数用意されています。解凍してホーム・ディレクトリにインストールできます。
- pingはルート・アクセスが必要なため、クラウド・シェルでは使用できません。
- クラウド・シェルはFIPSモードで起動し、一部のコマンドの動作に影響する場合があります。
- Cloud ShellはFIPSモードで起動するため、
openssl
コマンドの使用時にCloud ShellでPKCS#1キーを生成できません。FIPSモードでは、Cloud ShellがPKCS#8キーを生成する必要があります。 - クラウド・シェル制限の詳細は、サービス制限のクラウド・シェルの項を参照してください。
クラウド・シェルのアクセスとその他の制限
クラウド・シェルは、ブラウザとサービス間の通信にWebSocketを使用します。ブラウザでWebSocketが無効になっているか、WebSocketが無効になっている企業プロキシを使用している場合、コンソールからクラウド・シェルを起動しようとすると、エラー・メッセージ(「予期しないエラーが発生しました」)が表示されます。
クラウド・シェルではインターネットにアクセスできますが、外部からクラウド・シェルへのイングレス(例: クラウド・シェルへのsshでの接続)はないため、パブリックIPアドレスはありません。テナンシ管理者がOCIからのインターネットへのアクセスを有効化しない場合、IAMポリシーでクラウド・シェルへのアクセス権を付与しないでください。
クラウド・シェルのリソースの場所および所有権
クラウド・シェルを初めて起動するとき、サービスによってホーム・ディレクトリのために永続ブロック・ストレージ・ボリューム(5GB)が作成されます。ホーム・ディレクトリ・ボリュームはテナンシ・ホーム・リージョンにあります。クラウド・シェル・セッションを実行しているマシンも、テナンシ・ホーム・リージョンにあります。
クラウド・シェルは、ユーザーOCIDを使用してホーム・ディレクトリを作成します。テナンシに複数のアカウントがある場合(たとえば、フェデレーテッド・ユーザー・アカウントと非フェデレーテッド・ユーザー・アカウントがある場合)、アカウントごとにそれぞれ一意のクラウド・シェル・ホーム・ディレクトリが取得されます。
コンソールのリージョン選択を変更したり、別のリージョンのURLを介してコンソールにログインしたりしても、クラウド・シェルのマシンとホーム・ディレクトリ・ボリュームの場所には影響しません。テナンシ・ホーム・リージョンを確認するには、コンソールで「テナンシの詳細」ページを表示します。
クラウド・シェルのリソース(クラウド・シェルのセッションに使用されるVMを含む)はクラウド・シェル・サービスが所有しており、お客様のテナンシには存在していません。このため、使用しているクラウド・シェルのVMをテナンシの動的グループに追加することや、クラウド・シェルのセッションに使用するインスタンスのインスタンス・プリンシパルを使用することはできません。
クラウド・シェルおよびリージョン
クラウド・シェルを起動すると、サービスは、コンソールで選択されたリージョンを使用してクラウド・シェル・セッションを構成し、選択されているコンソールのリージョンとOCI CLIが相互作用するようになります。
クラウド・シェルのデフォルトのbashプロンプトでは、OCI CLIが相互作用しているリージョンがクラウド・シェルのコマンド・プロンプトにエコーされます:
クラウド・シェル・セッションの起動後に、コンソールで選択されているリージョンを変更しても、アクティブなクラウド・シェル・セッションには影響しません。OCI CLIが相互作用しているリージョンをクラウド・シェルで変更する場合は、次のいずれかを行います:
- 現在のクラウド・シェル・セッションを終了し、コンソールで選択されているリージョンを変更してから、新しいクラウド・シェル・セッションを起動します。
- OCI_CLI_PROFILE環境変数を使用して、現在選択されているOCI CLIプロファイルを変更します
詳細は、クラウド・シェルの使用のリージョンの管理の項を参照してください。
クラウド・シェルのプライベート・ネットワーキング
Cloud Shellプライベート・ネットワーキングを使用すると、プライベート・ネットワークにCloud Shellセッションを接続できるため、パブリック・ネットワークを介するネットワーク・トラフィックがなくても、プライベート・ネットワーク内のリソースにアクセスできます。プライベート・ネットワーキングが役立つ例として、プライベート・ネットワーク内のコンピュート・インスタンスにSSHで接続したり、プライベートOKEクラスタを管理したりなどがあります。
クラウド・シェル・インスタンスはプライベート・インスタンスであり、ネットワーク設定の目的でプライベート・インスタンスと同様に機能します。インターネット・ゲートウェイのみを使用すると、プライベート・サブネットからのインターネットへのエグレスは許可されません。サービス・ゲートウェイまたはNATゲートウェイを使用します。詳細は、インターネット・ゲートウェイのドキュメントを参照してください。
要件およびIAMポリシー
プライベート・ネットワーキングを使用するには、ユーザー(または管理者)が次のポリシーを指定する必要があります:
-
allow group <group> to use subnets in compartment <compartment>
-
allow group <group> to use vnics in compartment <compartment>
-
allow group <group> to use network-security-groups in compartment <compartment>
-
allow group <group> to inspect vcns in compartment <compartment>
ポリシーを初めて使用する場合は、ポリシーの開始と共通ポリシーを参照してください。
また、適切なコンパートメントにプライベートのCNとサブネットを作成する必要があります。詳細は、ネットワーキング・ドキュメントのVCNおよびサブネットを参照してください。
プライベート・ネットワーキングの開始
クラウド・シェル・セッションが使用しているネットワークを変更するには、クラウド・シェル・ターミナル・ウィンドウの上部にあるドロップダウンの「ネットワーク」メニューを使用します:
このメニューから、お気に入りのプライベートネットワーク接続を選択できます。その他のオプションを表示するには、「プライベート・ネットワーク定義リスト」項目を選択すると、「プライベート・ネットワーク定義リスト」パネルが表示されます。
このパネルでは、追加のプライベートネットワークを選択できます。また、お気に入りのプライベートネットワークをすばやく選択するように指定することもできます(最大5つのお気に入りを使用できます)。
新しいプライベート・ネットワーク定義の作成
一時的なエフェメラル・ネットワークを作成するには、ネットワーク選択ドロップダウンから「エフェメラル・プライベート・ネットワーク設定」を選択します。この一時ネットワークは、Cloud Shellセッションの長さに対してのみ有効であり、定義されたプライベート・ネットワークのリストに永続化されません。
「名前」テキスト・ボックスにプライベート・ネットワーク定義の名前を入力します。
ホーム・リージョン内のSCNおよびサブネットのみを使用できます。ホーム・リージョンではないリージョン内のサブネットにアクセスする必要がある場合は、プライベート・ネットワーキングによって使用されるサブネットからのピアリングを使用して、サブネットに到達できます。詳細は、VCNクロスリージョン・ピアリングを参照してください。
クラウドシェルのプライベート・ネットワーク用に選択したサブネットには、使用可能なサブネットのCIDRブロックに対して少なくとも1つの予約されていないIPアドレスが必要です。予約されていないIPアドレスがすべて割り当てられている場合、Cloudshellはそのサブネットにアタッチできません。
例:
この定義をアクティブ・ネットワークとして設定する場合は、「ネットワークとして使用」チェック・ボックスを選択します。
「作成」ボタンをクリックして、Cloud Shellプライベート・ネットワーク定義を作成します。
クラウド・シェル・ターミナル・セッションの上部にある「ネットワーキング」ドロップダウンに示されているように、クラウド・シェル・セッションがプライベート・ネットワークに接続されました。
「詳細」リンクをクリックすると、プライベート・ネットワーク接続の詳細を表示できます: