yandex-cloud-cli について
`yc`でYandex Cloudを操作するためのコマンドラインリファレンススキルです。スクリプト作成者やクラウド管理者向けに、インフラ、ID、データベース、ストレージなどのサービスを扱います。
主な機能
- 01グローバルフラグと出力形式
- 02プロファイルと認証のガイド
- 03リソースCRUDコマンドのパターン
- 04サービス別コマンドリファレンス
- 05非同期操作の追跡
活用シーン
- 01JSONとjqでスクリプトからリソースIDを抽出
- 02コマンドラインでクラウドリソースを管理
- 03時間のかかるリソース操作を追跡
- 04クラウドフォルダーごとにプロファイルを設定
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ elsvv/ yandex-cloud-cli-skill --skill yandex-cloud-cliインストール後、Claude Code で/yandex-cloud-cliを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
README.md.gitignorereferences/data-platform.mdiam.mdcompute.mdload-balancers.mdkubernetes.mdcdn.mddatabases.mdcontainer-registry.mdlogging-audit.mdorganization.mdserverless.mdnetworking.mdstorage-secrets-certs.md詳細
Yandex Cloud CLI (yc)
基本事項
コマンド構造
yc <service-group> <resource> <command> [<NAME|ID>] [flags] [global-flags]
グローバルフラグ
| フラグ | 用途 |
|---|---|
--profile NAME | 名前付きプロファイルを使用します |
--cloud-id ID | クラウドを上書きします |
--folder-id ID | フォルダーを上書きします |
--folder-name NAME | 名前でフォルダーを上書きします |
--token TOKEN | OAuth トークンを上書きします |
--impersonate-service-account-id ID | サービスアカウントとして操作します |
--format text|yaml|json|json-rest | 出力形式 |
--jq EXPR | JSON 出力をフィルタリングします(jq 構文) |
--async | ノンブロッキングで実行します(操作 ID を返します) |
--retry N | gRPC の再試行回数(0=無効、デフォルトは 5) |
--debug | デバッグログを出力します |
--no-user-output | ユーザー向け出力を抑制します |
-h, --help | 任意のコマンドのヘルプ |
出力とスクリプト
スクリプトでは、常に --format json と jq を組み合わせて使用してください。
# Get resource ID by name
yc compute instance get my-vm --format json | jq -r .id
# List all instance external IPs
yc compute instance list --format json | jq -r '.[].network_interfaces[0].primary_v4_address.one_to_one_nat.address'
# Use --jq shortcut (no piping needed)
yc compute instance get my-vm --format json --jq .id
# Get multiple fields
yc compute instance list --format json | jq -r '.[] | [.name, .status] | @tsv'
設定とプロファイル
yc init # Interactive setup (OAuth, cloud, folder)
yc config list # Current config
yc config set folder-id <ID> # Set default folder
yc config set compute-default-zone ru-central1-d
yc config set format json # Default output format
# Profile management
yc config profile create <NAME>
yc config profile activate <NAME>
yc config profile list
yc config profile get <NAME>
yc config profile delete <NAME>
# S3 storage config
yc config set storage-endpoint storage.yandexcloud.net
認証方法
- OAuth トークン(個人利用):
yc config set token <OAUTH-TOKEN> - サービスアカウントキー(自動化):
yc config set service-account-key key.json - インスタンスメタデータ(YC VM 上):
yc config set instance-service-account true - フェデレーション(SSO):
yc init --federation-id <ID>
yc config list # Show current profile, cloud, folder, token
yc iam create-token # Get IAM token for API calls
操作
クラスターの作成など、時間のかかる操作は追跡できます。
yc <service> <resource> create ... --async # Returns operation ID
yc operation get <OPERATION-ID> # Check status (poll until done=true)
--async を指定しない場合、コマンドは操作が完了するまで待機します。
アベイラビリティゾーン
ru-central1-a— モスクワ、ゾーン Aru-central1-b— モスクワ、ゾーン Bru-central1-d— モスクワ、ゾーン D
注:ru-central1-c は非推奨です。新しいリソースには ru-central1-d を使用してください。
サービスクイックリファレンス
すべてのサービスグループ
| グループ | エイリアス | 目的 |
|---|---|---|
| コンピューティングとインフラストラクチャ | ||
compute | — | VM、ディスク、イメージ、スナップショット、インスタンスグループ、ファイルシステム、GPU クラスター |
vpc | — | ネットワーク、サブネット、セキュリティグループ、アドレス、ゲートウェイ、ルートテーブル |
dns | — | DNS ゾーンとレコード |
cdn | — | CDN リソース、オリジングループ、キャッシュ管理 |
load-balancer | lb | ネットワークロードバランサー(L4) |
application-load-balancer | alb | アプリケーションロードバランサー(L7) |
| ID とセキュリティ | ||
iam | — | サービスアカウント、ロール、キー、トークン |
resource-manager | resource | クラウド、フォルダー |
organization-manager | — | 組織、フェデレーション、グループ、OS Login |
kms | — | 対称暗号化キー |
lockbox | — | シークレット管理 |
certificate-manager | cm | TLS 証明書(Let's Encrypt、インポート済み) |
smartwebsecurity | sws | WAF セキュリティプロファイル(ルール、スマート保護、地域/IP フィルタリング) |
smartcaptcha | sc | CAPTCHA 管理(チェックボックス、スライダー、チャレンジ) |
quota-manager | — | クォータの表示と上限引き上げのリクエスト |
| コンテナーとサーバーレス | ||
managed-kubernetes | k8s | Kubernetes クラスター、ノードグループ |
container | — | コンテナレジストリ、リポジトリ、イメージ |
serverless | sls | 関数、トリガー、コンテナー、API ゲートウェイ |
| データベース | ||
managed-postgresql | postgres | PostgreSQL クラスター |
managed-mysql | — | MySQL クラスター |
managed-clickhouse | — | ClickHouse クラスター |
managed-mongodb | — | MongoDB クラスター |
managed-redis | — | Redis クラスター |
managed-kafka | — | Kafka クラスター |
managed-opensearch | opensearch | OpenSearch クラスター |
managed-greenplum | — | Greenplum クラスター |
ydb | — | YDB データベース(サーバーレスまたは専用) |
| データと分析 | ||
dataproc | — | DataProc(Hadoop/Spark)クラスターとジョブ |
datatransfer | dt | Data Transfer エンドポイントと転送 |
| ストレージ | ||
storage | — | オブジェクトストレージ(S3 互換)、バケット |
| オブザーバビリティ | ||
logging | log | Cloud Logging(グループ、読み取り、書き込み) |
audit-trails | — | 監査証跡の管理 |
| その他 | ||
backup | — | Cloud Backup(VM、ポリシー) |
iot | — | IoT Core(レジストリ、デバイス、MQTT) |
marketplace | — | Marketplace の製品 |
loadtesting | — | 負荷テスト |
標準的な CRUD パターン
ほとんどのリソースは次のパターンに従います。
yc <service> <resource> list [--folder-id ID]
yc <service> <resource> get <NAME|ID>
yc <service> <resource> create [<NAME>] [flags]
yc <service> <resource> update <NAME|ID> [flags]
yc <service> <resource> delete <NAME|ID>
多くのリソースは、さらに次の操作もサポートしています:add-labels、remove-labels、list-operations、list-access-bindings、add-access-binding、remove-access-binding、move(フォルダー間の移動)。
詳細なリファレンス
必要なサービスに対応するリファレンスファイルを参照してください。
- コンピューティング(VM、ディスク、イメージ、スナップショット、スナップショットスケジュール、インスタンスグループ、ファイルシステム、プレースメントグループ、GPU クラスター) → references/compute.md
- ネットワーキング(VPC ネットワーク、サブネット、セキュリティグループ、アドレス、ゲートウェイ、ルートテーブル、DNS ゾーン/レコード) → references/networking.md
- IAM とリソースマネージャー(サービスアカウント、ロール、すべてのキー種別、アクセスバインディング、クラウド、フォルダー) → references/iam.md
- サーバーレス(関数、バージョン、トリガー、コンテナ、API ゲートウェイ、ランタイム、スケーリング) → references/serverless.md
- Kubernetes(クラスター、ノードグループ、kubeconfig、オートスケーリング、セットアップの完全な例) → references/kubernetes.md
- データベース(PostgreSQL、MySQL、ClickHouse、Redis、MongoDB、OpenSearch、Greenplum、YDB、Kafka — クラスター、ユーザー、データベース、バックアップ、リソースプリセット) → references/databases.md
- ストレージ、シークレット、証明書(S3 バケット、s3/s3api コマンド、Lockbox シークレット、KMS 暗号化、Certificate Manager — Let's Encrypt とインポートした証明書) → references/storage-secrets-certs.md
- コンテナレジストリ(レジストリ、リポジトリ、イメージ、Docker 認証、ライフサイクルポリシー) → references/container-registry.md
- ロードバランサー(ALB — ターゲットグループ、バックエンドグループ、HTTP ルーター、仮想ホスト、ルート、リスナー、NLB — ネットワークロードバランサー、ターゲットグループ、ヘルスチェック) → references/load-balancers.md
- CDN(オリジングループ、CDN リソース、キャッシュ、SSL、圧縮、ヘッダー、セキュリティ、キャッシュのパージ/プリフェッチ) → references/cdn.md
- ログと監査(Cloud Logging グループの読み取り/書き込み、Audit Trails、Cloud Backup) → references/logging-audit.md
- データプラットフォーム(DataProc クラスター/サブクラスター/ジョブ、Data Transfer エンドポイント/転送) → references/data-platform.md
- 組織、セキュリティ、クォータ(Organization Manager、フェデレーション、グループ、OS Login、ルール/条件を含む Smart Web Security WAF、SmartCaptcha、Quota Manager、IoT Core) → references/organization.md
ガイドライン
- 変更を伴うコマンドを実行する前に、必ずアクティブなプロファイルとフォルダーを確認してください:
yc config list - スクリプトで ID や値を抽出するには、
--format json | jqを使用してください - 時間のかかる操作には
--asyncを使用し、その後で次のコマンドを実行して確認してください:yc operation get <OP-ID> - 対話形式での使用では
--idより--nameを優先し、信頼性が求められるスクリプトでは--nameより--idを優先してください - 不慣れなコマンドを使う場合は、
yc <service> <resource> <command> --helpを実行してください。組み込みヘルプが正確で、常に最新です - 他のリソースに依存するリソース(VM にはサブネットが必要、サブネットにはネットワークが必要など)を作成する場合は、先に依存先を作成してください
- 本番環境のデータベース、クラスター、シークレットには
--deletion-protectionを使用してください - S3 の操作では、
yc iam access-key createを使用して静的アクセスキーを作成してください - ルールのないカスタムセキュリティグループはすべてのトラフィックを拒否します。自動作成されるデフォルトの SG はすべてを許可するため、本番環境では必ず明示的な SG を作成してください
- コストの追跡とフィルタリングのため、ラベルを一貫して使用してください(
--labels env=prod,team=backend) - マネージドデータベースでは、アクセスを制限するために必ず
--security-group-idsを指定してください - K8s クラスターを作成する際は、2 つのサービスアカウントを指定してください(同じアカウントでもかまいません)。クラスターリソースには
--service-account-name、ノード操作(レジストリ、ログ)には--node-service-account-nameを使用してください
コメント
Markdown 対応