このページでは、Identity and Access Management(IAM)を使用して、Secure Source Manager インスタンスへのアクセス権をユーザーに付与する方法について説明します。Secure Source Manager のアクセス制御の詳細については、IAM によるアクセス制御をご覧ください。
必要なロール
ユーザーにインスタンス アクセス権を付与するために必要な権限を取得するには、Secure Source Manager インスタンスに対する Secure Source Manager インスタンス オーナーロール (roles/securesourcemanager.instanceOwner)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
Secure Source Manager ロールの付与については、IAM によるアクセス制御をご覧ください。
Workforce Identity 連携ユーザーにアクセス権を付与する
Workforce Identity 連携を使用して Secure Source Manager にアクセスする場合、プリンシパルは異なる方法で表されます。ID グループを表すプリンシパルにアクセス権を付与する方法については、IAM ポリシーで Workforce プールユーザーを表すをご覧ください。
たとえば、次のコマンドは、us-central1 リージョンのプロジェクト my-project のインスタンス my-instance のワークフォース プール my-pool で、ユーザー user@example.com にインスタンス アクセサー ロール(roles/securesourcemanager.instanceAccessor)を付与します。
gcloud beta source-manager instances add-iam-policy-binding my-instance \
--project=my-project \
--region=us-central1 \
--member=principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/user@example.com \
--role=roles/securesourcemanager.instanceAccessor
Workforce Identity プール内のユーザーまたはグループに、ID プロバイダ(IdP)の属性に基づいて権限を付与できます。また、Common Expression Language(CEL)を使用して OIDC 属性をカスタム属性にマッピングし、IAM ポリシーで認可戦略を定義することもできます。属性マッピングの詳細については、属性マッピングをご覧ください。
1 人のユーザーにアクセス権を付与する
単一のユーザーにインスタンスへのアクセス権を付与するには、次の Google Cloud CLI コマンドを使用します。
gcloud beta source-manager instances add-iam-policy-binding INSTANCE_ID \
--project=PROJECT_ID \
--region=REGION \
--member=PRINCIPAL_IDENTIFIER \
--role=roles/securesourcemanager.instanceAccessor
次のように置き換えます。
INSTANCE_IDはインスタンス ID に置き換えます。PROJECT_ID: インスタンスのプロジェクト ID またはプロジェクト番号。REGIONは、インスタンスが配置されているリージョンに置き換えます。使用可能な Secure Source Manager リージョンについては、ロケーションのドキュメントをご覧ください。PRINCIPAL_IDENTIFIER: ロールを付与するプリンシパルの ID。たとえば、メールアドレスを持つ単一のユーザーにロールを付与するには、プリンシパル ID を
user:EMAILの形式で指定します。ここで、EMAIL はユーザーのメールアドレスです。サポートされているプリンシパル ID の詳細については、プリンシパル ID をご覧ください。
たとえば、次のコマンドは、us-central リージョンのプロジェクト my-project のインスタンス my-instance に対する roles/securesourcemanager.instanceAccessor ロールを trusted-user1@gmail.com ユーザーに付与します。
gcloud beta source-manager instances add-iam-policy-binding INSTANCE_ID \
--project=my-project \
--region=us-central1 \
--member=user:trusted-user1@gmail.com \
--role=roles/securesourcemanager.instanceAccessor
複数のユーザーにアクセス権を付与する
インスタンスへのアクセス権が必要なすべてのユーザーの Google グループを作成します。グループはドメイン固有のグループにすることができます。
すべての潜在的なユーザー(すべてのデベロッパーや、社内で問題を報告する可能性のあるユーザーなど)を含む幅広いグループを作成することをおすすめします。リポジトリや問題など、Secure Source Manager インスタンス内のリソースにアクセスしたり、リソースを作成したりするには、ユーザーがこのグループに属している必要があります。
このグループを広範なグループにすることで、チームリーダーはグループのメンバーシップを管理することなく、インスタンス レベルとリポジトリ レベルのユーザーロールを管理できます。
現在の許可ポリシーを読み取って
/tmp/instances.jsonに保存するには、次のコマンドを実行します。gcloud beta source-manager instances get-iam-policy INSTANCE_ID \ --project=PROJECT_ID \ --region=REGION \ --format=json > /tmp/instance.json次のように置き換えます。
INSTANCE_IDはインスタンス ID に置き換えます。PROJECT_ID: インスタンスのプロジェクト ID またはプロジェクト番号。REGIONは、インスタンスが配置されているリージョンに置き換えます。使用可能な Secure Source Manager リージョンについては、ロケーションのドキュメントをご覧ください。
出力には既存のバインディングが含まれます。バインディングが存在しない場合は、次のような
etag値が含まれます。{ "etag": "BwUjHYKJUiQ=" }JSON ファイル
/tmp/instance.jsonを編集して、グループに次のロールを付与します。- インスタンスを表示する必要があるが、リポジトリの作成や変更は行わないユーザー向けのインスタンス アクセサー ロール(
roles/securesourcemanager.instanceAccessor)。 - リポジトリの作成と変更が必要なユーザーに対するインスタンス リポジトリ作成者ロール(
roles/securesourcemanager.instanceRepositoryCreator)。 - インスタンスを管理するユーザーのインスタンス オーナー ロール(
roles/securesourcemanager.instanceOwner)。
次のポリシーの例では、グループ
your-group@gmail.comにroles/securesourcemanager.instanceRepositoryCreatorロールを付与し、ユーザーtrusted-user1@gmail.comとtrusted-user2@gmail.comにroles/securesourcemanager.instanceOwnerロールを付与します。{ "etag": "ETAG", "bindings": [ { "role": "roles/securesourcemanager.instanceRepositoryCreator", "members": [ "group:GROUP_EMAIL" ] }, { "role": "roles/securesourcemanager.instanceOwner", "members": [ "user:USER_EMAIL_1", "user:USER_EMAIL_2" ] } ] }次のように置き換えます。
getIamPolicyレスポンスのetag値(この場合はBwUjHYKJUiQ=)を含むETAGGROUP_EMAIL: Google グループのメールアドレス。USER_EMAIL_1とUSER_EMAIL_2。インスタンス オーナーのロールを付与するユーザーのメールアドレスを指定します。
- インスタンスを表示する必要があるが、リポジトリの作成や変更は行わないユーザー向けのインスタンス アクセサー ロール(
編集した
/tmp/instance.jsonファイルを保存します。保存した許可ポリシーを変更して必要なロールを付与または取り消した後、次のコマンドを実行してインスタンスの許可ポリシーを更新します。
gcloud beta source-manager instances set-iam-policy INSTANCE_ID \ --project=PROJECT_ID \ --region=REGION \ /tmp/instance.json次のように置き換えます。
INSTANCE_IDはインスタンス ID に置き換えます。PROJECT_ID: インスタンスのプロジェクト ID またはプロジェクト番号。REGIONは、インスタンスが配置されているリージョンに置き換えます。使用可能な Secure Source Manager リージョンについては、ロケーションのドキュメントをご覧ください。
次のステップ
- ユーザーにリポジトリへのアクセス権を付与する。
- IAM によるアクセス制御に関する詳細を確認する。
- リポジトリを作成する
- IAM ロールを付与および取り消す。