チームメンバーの1人にCompute OSログインのみのアクセスを許可しようとしていますが、それを確立できませんでした。
どうだった?
ステップ1
In the appropriate project under the IAM I added the user email and given Role for Compute OS Login after that.
ステップ2
端末で試しました
# glcoud init
必要な情報をすべて提供した後、gcloudでログインを試みました
# gcloud compute ssh sjkeerthi@test-instance -- -p 2020
No zone specified. Using zone [europe-west2-c] for instance: [test-instance].
Updating project ssh metadata...failed.
Updating instance ssh metadata...failed.
ERROR: (gcloud.compute.ssh) Could not add SSH key to instance metadata:
- The user does not have access to service account '[email protected]'. User: '[email protected]'. Ask a project owner to grant you the iam.serviceAccountActor role on the service account
注:-メタデータの下に設定してもenable-oslogin = True
次の公開ドキュメント ユーザーアカウントでのOSログインロールの構成 が役立つと思います。取得したエラーは、ユーザーに(iam.serviceAccountUser)ロールがないことを示しています。
The user does not have access to service account '[email protected]'. User: '[email protected]'. Ask a project owner to grant you the iam.serviceAccountActor role on the service account
公開ドキュメントで提供されている例のように、次のプロセスでユーザーにインスタントアクセスを許可できます。
必要なインスタンスアクセスロールをユーザーに付与します。
ユーザーには次の役割が必要です。
- Iam.serviceAccountUserの役割。
次のログインロールのいずれか:
- 管理者権限を付与しないcompute.osLoginロール
- 管理者権限を付与するcompute.osAdminLoginロール
IAMアカウントに次のロールを追加する必要があります ここに示すように :
roles/iam.serviceAccountUser
roles/compute.osLogin
通常のユーザーとしてログインする場合roles/compute.osAdminLogin
管理者としてログインしたい、またはroot権限を持ちたい場合サービスアカウント「[email protected]」として機能できるように、サービスアカウントアクターの役割をユーザーアカウントに追加する必要があります。
この役割は廃止されました。サービスアカウントユーザーの役割とサービスアカウントトークン作成者をIAMのユーザーアカウントに付与する必要があります。
詳細については、この link で公開ドキュメントを参照できます。
Google Compute Engine(GCE)インスタンスから別のGCEインスタンスにSSH接続しようとしている場合は、ソースインスタンスのCompute Engineスコープが構成設定で読み取り/書き込みに設定されていることを確認して、他のGCEインスタンスにアクセスできるようにします。