このページでは、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=
)を含むETAG
GROUP_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 ロールを付与および取り消す。