ユーザーとサービス アカウントは、SSH 公開鍵を使用して Secure Source Manager リポジトリに対する認証を行うことができます。このページでは、SSH 認証鍵ペアを生成し、Secure Source Manager ウェブ インターフェースで認証方法として追加する方法について説明します。
Secure Source Manager は、RSA、ECDSA、Ed25519 の SSH 認証鍵タイプをサポートしています。
必要なロール
SSH 公開鍵を使用して認証するために必要な権限を取得するには、管理者に次の IAM ロールを付与するよう依頼してください。
-
ユーザーの SSH 認証鍵を追加するには:
Secure Source Manager インスタンス アクセサー (
roles/securesourcemanager.instanceAccessor) Secure Source Manager インスタンスに対する -
サービス アカウントの SSH 認証鍵を追加するには:
- Secure Source Manager インスタンスに対する Secure Source Manager インスタンス マネージャー (
roles/securesourcemanager.instanceManager) - サービス アカウントに対する サービス アカウント ユーザー(
roles/iam.serviceAccountUser)
- Secure Source Manager インスタンスに対する Secure Source Manager インスタンス マネージャー (
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
これらの事前定義ロールには SSH 公開鍵を使用して認証するために必要な権限が含まれています。必要とされる正確な権限については、必要な権限セクションを開いてご確認ください。
必要な権限
SSH 公開鍵を使用して認証するには、次の権限が必要です。
-
securesourcemanager.sshkeys.createAnySecure Source Manager インスタンスに対する -
サービス アカウントに SSH 認証鍵を割り当てるには:
iam.serviceAccounts.actAsサービス アカウントに対する
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
Secure Source Manager ロールの付与については、 IAM によるアクセス制御と ユーザーにインスタンスへのアクセス権を付与するをご覧ください。
鍵ペアを生成する
SSH 認証鍵ペアは、ローカル システムにある秘密鍵と に登録した公開鍵で構成されます Google Cloud。
Linux または macOS
ローカル システムに OpenSSH をインストールします。
コマンド プロンプトで、次のコマンドを入力します。
ssh-keygen -t KEY_TYPE -C "USER_EMAIL"ここで
- USER_EMAIL はあなたのメールアドレスです。
- KEY_TYPE は、
rsa、ecdsa、またはed25519のいずれかです。
次に例を示します。
ssh-keygen -t rsa -C "user@example.com"プロンプトが表示されたら、公開鍵ファイルの場所とファイル名を入力します。 デフォルトの場所とファイル名を使用する場合は、Enter キーを押します。
プロンプトが表示されたら、パスフレーズを空白のままにして Enter キーを押します。
Windows
OpenSSH クライアント (Windows 10 以降に含まれています) と Git for Windows がインストールされていない場合は、ローカル システムにインストールします。以降の手順では、OpenSSH と Git for Windows を使用します。
PowerShell またはコマンド プロンプトで、次のコマンドを実行します。
ssh-keygen -t KEY_TYPE -C "USER_EMAIL"ここで
- USER_EMAIL はあなたのメールアドレスです。
- KEY_TYPE は、
rsa、ecdsa、またはed25519のいずれかです。
次に例を示します。
ssh-keygen -t rsa -C "user@example.com"プロンプトが表示されたら、公開鍵ファイルの場所とファイル名を入力します。 デフォルトの場所とファイル名(`%USERPROFILE%.ssh`)を使用する場合は、Enter キーを押します。
プロンプトが表示されたら、パスフレーズを空白のままにして Enter キーを押します。
SSH エージェントに SSH 認証鍵を追加する
生成した SSH 認証鍵ペアを使用するには、SSH エージェントに鍵を追加します。鍵をデフォルトの場所に保存しなかった場合は、SSH エージェントに追加すると、SSH が鍵を見つけやすくなります。
Linux または macOS
バックグラウンドで
ssh-agentを起動します。eval "$(ssh-agent -s)"コマンドからエージェント プロセス ID(PID)が返されます。次に例を示します。
Agent pid 3245環境によっては、別のコマンドを使用する必要がある場合があります。次に例を示します。
- root アクセスを使用するには、
ssh-agentを起動する前にsudo -s -Hを実行します。 ssh-agentを直接実行するには、exec ssh-agent bashまたはexec ssh-agent zshを使用します。
- root アクセスを使用するには、
SSH 秘密鍵を
ssh-agentに追加します。ssh-add ~/.ssh/FILENAMEここで、
FILENAMEは秘密鍵ファイルの名前です(例:id_rsa、id_ed25519)。
Windows
ssh-agentを起動します。Git Bash を使用している場合は、
ssh-agentを起動します。eval "$(ssh-agent -s)"PowerShell またはコマンド プロンプトを使用している場合は、
ssh-agentサービスを起動します。PowerShell で次のコマンドを実行します。Set-Service ssh-agent -StartupType Automatic; Start-Service ssh-agent
SSH 秘密鍵を
ssh-agentに追加します。Git Bash を使用している場合:
ssh-add ~/.ssh/FILENAMEPowerShell またはコマンド プロンプトを使用している場合:
ssh-add $env:USERPROFILE\.ssh\FILENAME
ここで、
FILENAMEは秘密鍵ファイルの名前です(例:id_rsa、id_ed25519)。
ユーザーの SSH 認証鍵を追加する
- Secure Source Manager ウェブ インターフェースで、インスタンスまたは リポジトリのページから、 [その他のオプション] メニューをクリックします。
[ユーザー SSH 認証鍵] をクリックします。
[ユーザー SSH 認証鍵] ページが開き、作成した既存の鍵のリストが表示されます。
[ユーザー SSH 認証鍵] ページで、[鍵を追加] をクリックします。
[SSH 認証鍵を追加] ページで、鍵に次の値を入力します。
- タイトル: 鍵の内容を示すタイトルを追加します。
SSH 公開鍵: 公開鍵文字列を貼り付けます。公開鍵文字列を取得するには、テキスト エディタで公開鍵ファイル(
FILENAME.pub) を開くか、次のいずれかのコマンドを実行します。Linux または macOS
cat ~/.ssh/FILENAME.pubWindows
cat $env:USERPROFILE\.ssh\FILENAME.pubFILENAMEは鍵ファイルの名前に置き換えます。
SSH 認証鍵を使用して、リポジトリに必要な権限があれば、任意の Secure Source Manager リポジトリに対する認証を行うことができます。
サービス アカウントの SSH 認証鍵を追加する
リポジトリへのプログラムによるアクセスを許可するには、サービス アカウントの SSH 認証鍵を追加します。
- 使用するサービス アカウントがない場合は、 サービス アカウントを作成します。
- Secure Source Manager ウェブ インターフェースで、 [その他のオプション] メニューをクリックします。
- [サービス アカウントの SSH 認証鍵] をクリックします。[サービス アカウントの SSH 認証鍵] ページが開き、追加した既存の鍵のリストが表示されます。
- [サービス アカウントの SSH 認証鍵] ページで、[鍵を追加] をクリックします。
[サービス アカウントの SSH 認証鍵を追加] ページで、鍵に次の値を入力します。
- タイトル: 鍵の内容を示すタイトル
サービス アカウント: SSH 認証鍵を使用するサービス アカウントのサービス アカウントのメールアドレス(
SA_NAME@PROJECT_ID.iam.gserviceaccount.comの形式)ここで
SA_NAMEはサービス アカウントの名前です。PROJECT_IDは、サービス アカウントが作成されたプロジェクトのプロジェクト ID です。
SSH 公開鍵: 公開 SSH 認証鍵。SSH 認証鍵ペアを生成する方法については、 鍵ペアを生成するをご覧ください。
サービス アカウントが Secure Source Manager インスタンスと同じプロジェクトにない場合は、使用するサービス アカウントに対する次のロールまたは権限のいずれかを Secure Source Manager の サービス エージェント に付与します。
iam.serviceAccounts.signJwt権限- サービス アカウント トークン作成者(
roles/iam.serviceAccountTokenCreator)ロール
次のコマンドを実行して、Secure Source Manager サービス アカウントに IAM ポリシーを追加し、サービス アカウント トークン作成者のロールを付与します。
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT \ --member="serviceAccount:service-INSTANCE_PROJECT_NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com" \ --role="roles/iam.serviceAccountTokenCreator"ここで、SERVICE_ACCOUNT は使用するサービス アカウント、 INSTANCE_PROJECT_NUMBER は Secure Source Manager インスタンスのプロジェクト番号です。
SERVICE_ACCOUNT は、数値の サービス アカウント ID またはメールアドレス(123456789876543212345、 my-iam-account@somedomain.com など)としてフォーマットする必要があります。