1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

IBM CloudAdvent Calendar 2024

Day 5

IBM Cloud VPCに定義された権限

Last updated at Posted at 2024-12-11

はじめに

こちらの記事は下記Advent Calendar 2024で紹介しているIBM Cloud権限設定における VPC Infrastructure Services になります。

共通権限は割愛

こちらの記事に記載しているように、プラットフォーム・アクセス、サービス・アクセスの権限でそれぞれどのようなものが共通して設定されているかを紹介させて頂きました。

こちらの記事では共通部分で出現する権限を除いた各サービス毎の権限設定を紹介します。

VPCで指定可能な権限のアクセス範囲

image.png

  • リソース・グループ
  • リソース・タイプ
  • Region

リソース・グループの指定

これは指定されたリソース・グループに所属するVPCのみに対してアクセス権限を適用します。異なるリソース・グループのVPCに対しては別途権限を設定する必要があります。

リソース・タイプの指定

VPC上で利用可能なサービスの一覧が表示されるので、その特定のサービスのみ権限を与えることが可能です。
image.png

Regionの指定

これは jp-tok といったVPCの存在するRegionを指定することで、その指定されたRegionのみの権限を与えることが可能になります。

VPCに設定された権限

プラットフォーム・アクセスの権限

※Admin : Administrator, KM : Key Manager, SCR : Service Configuration Reader

VPC自体に関する権限

権限 Viewer Operator Editor Admin KM SCR
is.vpc.vpc.read
is.vpc.vpc.list
is.vpc.vpc.operate
is.vpc.vpc.create
is.vpc.vpc.update
is.vpc.vpc.delete
is.metadata.metadata.read
is.metadata.dashboard.view

基本的に作成や削除といった行為はEditor以上が必要になります。

Subnetに関する権限

権限 Viewer Operator Editor Admin KM SCR
is.subnet.subnet.read
is.subnet.subnet.list
is.subnet.subnet.operate
is.subnet.subnet.create
is.subnet.subnet.update
is.subnet.subnet.delete

SubnetのOperator権限で名称は変えたりできませんが、Subnet ACLを別のルールに変更するというのは可能でした。

Subnet Access Control List(ACL)に関する権限

権限 Viewer Operator Editor Admin KM SCR
is.network-acl.network-acl.read
is.network-acl.network-acl.list
is.network-acl.network-acl.operate
is.network-acl.network-acl.create
is.network-acl.network-acl.update
is.network-acl.network-acl.delete

Security Groupに関する権限

権限 Viewer Operator Editor Admin KM SCR
is.security-group.security-group.read
is.security-group.security-group.operate
is.security-group.security-group.create
is.security-group.security-group.update
is.security-group.security-group.delete

Public Gatewayに関する権限

権限 Viewer Operator Editor Admin KM SCR
is.public-gateway.public-gateway.read
is.public-gateway.public-gateway.list
is.public-gateway.public-gateway.operate
is.public-gateway.public-gateway.create
is.public-gateway.public-gateway.update
is.public-gateway.public-gateway.delete

Virtual Network Interfaceに関する権限

権限 Viewer Operator Editor Admin KM SCR
is.virtual-network-interface.virtual-network-interface.read
is.virtual-network-interface.virtual-network-interface.list
is.virtual-network-interface.virtual-network-interface.operate
is.virtual-network-interface.virtual-network-interface.create
is.virtual-network-interface.virtual-network-interface.update
is.virtual-network-interface.virtual-network-interface.delete
is.virtual-network-interface.virtual-network-interface.manage-protocol-state-filtering-mode
is.virtual-network-interface.virtual-network-interface.manage-infrastructure-nat
is.virtual-network-interface.virtual-network-interface.manage-ip-spoofing

IPスプーフィングの設定やVNIでのNAT設定はAdministratorでのみ許可されています。

VSI(仮想マシン)に関する権限

権限 Viewer Operator Editor Admin KM SCR
is.instance.instance.config.read
is.instance.instance.read
is.instance.instance.list
is.instance.instance.operate
is.instance.instance.create
is.instance.instance.update
is.instance.instance.delete

Operator権限でサーバの停止、開始といった操作は可能です。

インスタンステンプレートに関する権限

権限 Viewer Operator Editor Admin KM SCR
is.instance.instance-template.read
is.instance.instance-template.create
is.instance.instance-template.update
is.instance.instance-template.delete

Floating IP(浮動IP)に関する権限

権限 Viewer Operator Editor Admin KM SCR
is.floating-ip.floating-ip.read
is.floating-ip.floating-ip.list
is.floating-ip.floating-ip.operate
is.floating-ip.floating-ip.create
is.floating-ip.floating-ip.update
is.floating-ip.floating-ip.delete

ベアメタル(物理)サーバに関する権限

権限 Viewer Operator Editor Admin KM SCR
is.bare-metal-server.bare-metal-server.read
is.bare-metal-server.bare-metal-server.list
is.bare-metal-server.dashboard.view
is.bare-metal-server.bare-metal-server.operate
is.bare-metal-server.bare-metal-server-firmware.update
is.bare-metal-server.bare-metal-server.create
is.bare-metal-server.bare-metal-server.update
is.bare-metal-server.initialization.update
is.bare-metal-server.bare-metal-server.delete

ベアメタルサーバのダッシュボードを見る権限はOperator以上となっているのがちょっと不思議です。

Dedicated Hostに関する権限

権限 Viewer Operator Editor Admin KM SCR
is.dedicated-host.dedicated-host.read
is.dedicated-host.dashboard.view
is.dedicated-host.dedicated-host.list
is.dedicated-host.dedicated-host.operate
is.dedicated-host.dedicated-host.provision
is.dedicated-host.dedicated-host.create
is.dedicated-host.dedicated-host.update
is.dedicated-host.dedicated-host.delete
is.dedicated-host.dedicated-host-group.read
is.dedicated-host.dedicated-host-group.list
is.dedicated-host.dedicated-host-group.operate
is.dedicated-host.dedicated-host-group.provision
is.dedicated-host.dedicated-host-group.create
is.dedicated-host.dedicated-host-group.update
is.dedicated-host.dedicated-host-group.append
is.dedicated-host.dedicated-host-group.delete

こちらDedicated Hostのダッシュボード参照権限はViewerが設定されていれば良いです。ベアメタルとの差がよくわかりません。

Reservationに関する権限

権限 Viewer Operator Editor Admin KM SCR
is.reservation.reservation.read
is.reservation.reservation.list
is.reservation.reservation.operate
is.reservation.reservation.create
is.reservation.reservation.update
is.reservation.reservation.delete
is.reservation.reservation.activate
is.reservation.reservation.expire

予約済のリソースはViewer以上の権限があれば見れます。単純に作成、削除だけでなく、Activate(有効化)、Expire(失効)がAdministrator権限にあるのが他と違いますね。

インスタンスグループに関する権限

権限 Viewer Operator Editor Admin KM SCR
is.instance-group.instance-group.config.read
is.instance-group.instance-group.read
is.instance-group.instance-group.list
is.instance-group.instance-group.create
is.instance-group.instance-group.update
is.instance-group.instance-group.delete

インスタンスグループは特定のマシンをイメージテンプレートを利用してリクエスト数に応じて自動でマシン数を増やして負荷分散したりする機能になります。

Placement Groupに関する権限

権限 Viewer Operator Editor Admin KM SCR
is.placement-group.placement-group.read
is.placement-group.placement-group.list
is.placement-group.dashboard.view
is.placement-group.placement-group.operate
is.placement-group.placement-group.create
is.placement-group.placement-group.update
is.placement-group.placement-group.delete

Placement GroupはVSIのどのサーバ同士が同じ筐体で稼働するべきか、といった条件を作る権限になります。
例えばAppとDBサーバは同じ筐体で動かすように設定する、といったものですね。
こちらのダッシュボードはOperator以上の権限が無いと見れません。

イメージテンプレートに関する権限

権限 Viewer Operator Editor Admin KM SCR
is.image.image.config.read
is.image.image.read
is.image.image.list
is.image.image.operate
is.image.image.provision
is.image.image.create
is.image.image.deprecate
is.image.image.export
is.image.image.update
is.image.image.obsolete
is.image.image.delete

Block Storageに関する権限

権限 Viewer Operator Editor Admin KM SCR
is.volume.profile.view
is.volume.volume.config.read
is.volume.volume.read
is.volume.volume.list
is.volume.volume.operate
is.volume.volume.create
is.volume.volume.update
is.volume.volume.delete

File Storageに関する権限

権限 Viewer Operator Editor Admin KM SCR
is.share.share.config.read
is.share.share.read
is.share.share.list
is.share.share.operate
is.share.dashboard.view
is.share.share.create
is.share.share.update
is.share.share.delete
is.share.accessor-binding.read
is.share.accessor-binding.list
is.share.accessor-binding.create
is.share.accessor-binding.delete

File Storageはダッシュボードの権限があり、Operator以上と指定されています。
Block Storageと異なり、同一AZにある複数のVSIから共有可能なため、その紐づけのための権限が設定されています。

Snapshotに関する権限

権限 Viewer Operator Editor Admin KM SCR
is.snapshot.clone.read
is.snapshot.snapshot.config.read
is.snapshot.snapshot.read
is.snapshot.snapshot.list
is.snapshot.snapshot.operate
is.snapshot.snapshot.restore
is.snapshot.snapshot.create
is.snapshot.snapshot.update
is.snapshot.snapshot.delete
is.snapshot.snapshot-clone.create
is.snapshot.snapshot-clone.delete
is.snapshot-consistency-group.snapshot-consistency-group.read
is.snapshot-consistency-group.snapshot-consistency-group.list
is.snapshot-consistency-group.snapshot-consistency-group.create
is.snapshot-consistency-group.snapshot-consistency-group.update
is.snapshot-consistency-group.snapshot-consistency-group.delete

Snapshotの作成はEditor以上の権限となりますが、リストアの実行はOperatorの権限で可能になります。
必要最低限と言った時にリストア権限を付与するかどうかが分かれ目な気がしますね。

Backupポリシーに関する権限

権限 Viewer Operator Editor Admin KM SCR
is.backup-policy.backup-policy.read
is.backup-policy.backup-policy.list
is.backup-policy.dashboard.view
is.backup-policy.backup-policy.create
is.backup-policy.backup-policy.update
is.backup-policy.backup-policy.delete

自動で定期的にSnapshotを取得するためのBackupポリシーの作成権限は基本的にEditor以上の権限で行われます。
ダッシュボードの権限のみ割り振られたOperatorの権限は若干意味をなしていないような…見ることしかできないOperate権限とは…
(Viewerにダッシュボード参照権限を与えるのはダメだったのか…)

Virtual Private Endpoint(VPE)に関する権限

権限 Viewer Operator Editor Admin KM SCR
is.endpoint-gateway.endpoint-gateway.read
is.endpoint-gateway.endpoint-gateway.list
is.endpoint-gateway.endpoint-gateway.operate
is.endpoint-gateway.endpoint-gateway.create
is.endpoint-gateway.endpoint-gateway.update
is.endpoint-gateway.endpoint-gateway.delete

Private Pathに関する権限

権限 Viewer Operator Editor Admin KM SCR
is.private-path-service-gateway.account-policy.read
is.private-path-service-gateway.account-policy.list
is.private-path-service-gateway.account-policy.manage
is.private-path-service-gateway.endpoint-gateway-binding.read
is.private-path-service-gateway.endpoint-gateway-binding.list
is.private-path-service-gateway.endpoint-gateway-binding.manage
is.private-path-service-gateway.private-path-service-gateway.read
is.private-path-service-gateway.private-path-service-gateway.list
is.private-path-service-gateway.private-path-service-gateway.operate
is.private-path-service-gateway.private-path-service-gateway.create
is.private-path-service-gateway.private-path-service-gateway.update
is.private-path-service-gateway.private-path-service-gateway.delete
is.private-path-service-gateway.private-path-service-gateway.publish
is.private-path-service-gateway.private-path-service-gateway.unpublish

最近GAしたPrivate Pathの権限ですが、もちろん新規作成はEditor以上の権限が必要ですが、作成されたPrivate Pathのポリシーの変更やバインディングの変更といったところはOperator権限でも可能になっています。

Load Balancerに関する権限

権限 Viewer Operator Editor Admin KM SCR
is.load-balancer.config.read
is.load-balancer.load-balancer.view
is.load-balancer.load-balancer.operate
is.load-balancer.load-balancer.manage

少し不思議ですが、Load Balancerにはcreateの権限がなく、manageでどうも代用しているみたいです。

DNSに関する権限

権限 Viewer Operator Editor Admin KM SCR
is.vpc.dns-resolution-binding.read
is.vpc.dns-resolution-binding.list
is.vpc.dns-resolution-binding.create
is.vpc.dns-resolution-binding.update
is.vpc.dns-resolution-binding.delete

DNSには特にOperator特有の権限はなく、Editor以上の権限で作成可能にするか、といったところですね。

ルーティングに関する権限

権限 Viewer Operator Editor Admin KM SCR
is.vpc.routing-table.read
is.vpc.routing-table.list
is.vpc.routing-table.operate
is.vpc.routing-table.create
is.vpc.routing-table.update
is.vpc.routing-table.advertise
is.vpc.routing-table.delete

VPN Service(Site-to-Site)に関する権限

権限 Viewer Operator Editor Admin KM SCR
is.vpn.config.read
is.vpn.vpn.read
is.vpn.vpn.list
is.vpn.dashboard.view
is.vpn.vpn.create
is.vpn.vpn.update
is.vpn.vpn.delete

こちらはViewerでダッシュボードの参照が可能です。

VPN Server(Cient-to-Site)に関する権限

権限 Viewer Operator Editor Admin KM SCR
is.vpn-server.config.read
is.vpn-server.dashboard.view
is.vpn-server.vpn-server.read
is.vpn-server.vpn-server.operate
is.vpn-server.vpn-server.create
is.vpn-server.vpn-server.update
is.vpn-server.vpn-server.delete

こちらはOperator以上の権限でダッシュボードの参照が可能です。なぜ異なる設定にしているのかよくわかりません。

Cluster Networkに関する権限

権限 Viewer Operator Editor Admin KM SCR
is.cluster-network.cluster-network.read
is.cluster-network.cluster-network.list
is.cluster-network.cluster-network.create
is.cluster-network.cluster-network.update
is.cluster-network.cluster-network.delete
is.cluster-network.interface.read
is.cluster-network.interface.create
is.cluster-network.interface.list
is.cluster-network.interface.operate
is.cluster-network.interface.update
is.cluster-network.interface.delete
is.cluster-network.profile.read
is.cluster-network.profile.list
is.cluster-network.subnet.read
is.cluster-network.subnet.list
is.cluster-network.subnet.operate
is.cluster-network.subnet.create
is.cluster-network.subnet.update
is.cluster-network.subnet.delete
is.cluster-network.subnet-reserved-ip.read
is.cluster-network.subnet-reserved-ip.list
is.cluster-network.subnet-reserved-ip.create
is.cluster-network.subnet-reserved-ip.update
is.cluster-network.subnet-reserved-ip.delete

クラスターネットワークは現在H100のプロファイルを利用しているVSIのみ利用可能なもので、こちらの権限について検討される方は滅多にいないかもしれません。

HPCにご興味がある方は下記のドキュメントを参考にクラスターネットワークの利点を知って頂ければと思います。

Flow Logに関する権限

権限 Viewer Operator Editor Admin KM SCR
is.flow-log-collector.flow-log-collector.read
is.flow-log-collector.flow-log-collector.list
is.flow-log-collector.flow-log-collector.operate
is.flow-log-collector.flow-log-collector.create
is.flow-log-collector.flow-log-collector.update
is.flow-log-collector.flow-log-collector.delete

鍵に関する権限

権限 Viewer Operator Editor Admin KM SCR
is.key.key.read
is.key.key.list
is.key.key.operate
is.key.key.create
is.key.key.update
is.key.key.delete
is.key.userdata.read
is.key.userdata.list
is.key.userdata.create
is.key.userdata.delete
is.key.artifactattachment.read
is.key.artifactattachment.create
is.key.artifactattachment.update
is.key.artifactattachment.delete

これで全部になります。なかなかおなか一杯ですね。。。

サービス・アクセスの権限

VPCのサービス・アクセスは権限が多いのではなく役割が多いので、ベースとなるReader,Writer,Managerはマトリクスで、それ以外は個別に紹介します。

基本の役割が持つ権限

権限 Reader Writer Manager
is.metadata.dashboard.view
is.image.image.deprecate
is.image.image.obsolete

権限で指定されているのがこれだけなので、サービス・アクセスのReader,Writer,Managerはあまり指定しないかもしれません。

Bare Metal Console Adminの権限

  • is.bare-metal-server.bare-metal-server.console

ベアメタルサーバのコンソールにアクセスする権限を別途持つことが可能です。

Bare Metal Advanced Network Operatorの権限

  • is.bare-metal-server.bare-metal-server.infrastructure-nat
  • is.bare-metal-server.bare-metal-server.ip-spoofing

Virtual Network Interfaceの権限でも触れたベアメタルサーバのネットワークに対するNAT、IPスプーフィングの権限のみを別途適用することが可能です。

Console Administratorの権限

  • is.instance.instance.console

結構重要な権限でVPCのVSIを利用している場合、コンソールアクセスが必要なケースがあります。
その際にIBM Cloudのメニューからコンソールアクセスが可能なので、その際に必要な権限になります。
プラットフォーム・アクセスのAdministrator権限にこの権限が含まれていないので、別途付与が必要になります。

IP Spoofing Operatorの権限

  • is.instance.instance.ip-spoofing

VSIのIPスプーフィングの設定有無を切り替えることが可能な権限です。

Share Brokerの権限

  • is.share.accessor-binding.create
  • is.share.accessor-binding.delete

File Storageのアクセス可能なVSIの指定、削除のみ実行可能な権限です。

Share Remote Account Accessorの権限

  • is.share.share.allow-remote-account-access

別アカウントからのFile Storageへのアクセス許可をするために必要な権限です。

Snapshot Remote Account Restorerの権限

  • is.snapshot.snapshot.allow-remote-account-restore

別アカウントのSnapshotにアクセスする権限です。

Restore Volume From Remote Account Snapshot

  • is.volume.volume.allow-remote-account-snapshot-restore

別アカウントのSnapshotからBlock Storageへのリストアを許可する権限です。

DNS Binding Connectorの権限

  • is.vpc.vpc.read
  • is.vpc.dns-resolution-binding.connect
  • is.vpc.dns-resolution-binding.disconnect

DNSの設定でresolutionの接続、切り離しのみを実施する権限です。

Users of the VPN server need this role to connect to the VPN serverの権限

  • is.vpn-server.vpn-server.connect

割と重要な権限で、Client To Site VPNのサービスで、VPNの接続のみ許可する権限です。
VPNにアクセスする人が限定的で、対象者をIBM Cloudアカウントに招待する場合、この権限を付与しておけばVPN越しに必要なサーバにだけアクセスさせる、といったことが可能になります。

さいごに

VPCで定義可能なプラットフォーム・アクセスの権限は多いですね。
特に、VSIの作成、ネットワークの設定、VPNといったセキュリティ関係の設定等多くのサービスを含むので、不用意にEditor権限を付与すると何でもできる権限になってしまいます。
適切な権限管理を行う場合は、権限範囲の指定でリソースタイプを選び、VPCの中の必要なサービスにのみ権限を付与するのが望ましいように思います。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?