(2021/03/18に最新情報に更新しました)
はじめに
IBM Cloud Security and Compliance Center(SCC)の利用例として、
- IBM Cloud Security and Compliance Center(SCC)を触ってみた
- IBM Cloud Security and Compliance Center(SCC): Linuxのコンプライアンス準拠状況を確認する
を紹介しました。これは、現行環境が定められたセキュリティー・コンプライアンスに従っているかどうかをチェックするというものでした。
これとは別に、SCCにはあるルールを定め、そのルールに反しているリソースを検出し、またそのルールに反するリソースを作成しようとするとブロックしたりActivity Trackerにログを残すというガバナンスを効かせる機能があります。
https://cloud.ibm.com/docs/security-compliance?topic=security-compliance-overview#config-governance
ここで、ルールについてもう少し詳細に説明します。
- JSONで記述する。
- 以下の3要素から構成する
- target: 対象のサービス・リソースを指定する。
service_name
はCRNのネーミングに厳密に従う必要があるため、例えばibmcloud catalog service-marketplace -rc|awk '{print $2}'
の名称と一致している必要がある。 - required_config: 条件を指定する。
- enforcement_actions: 定義した条件を満たさなかった場合のアクションを指定する。
- target: 対象のサービス・リソースを指定する。
以下では、IBM Cloud docsに記載の通りのconfigを実際に試してみたいと思います。
1. Ruleの作成
{
target: {
service_name: 'cloud-object-storage',
resource_kind: 'bucket',
additional_target_attributes: []
},
required_config: {
description: 'Check whether my bucket is accessible by using only private endpoints.',
and: [
{
property: 'firewall.allowed_ip',
operator: 'ips_in_range',
value: ['10.0.0.0/8','172.16.0.0/12','118.7.75.0/24']
}
]
}
}
以上にてルールが作成された。
2. スコープの設定
このルールを適用するスコープを指定する。
3. ガバナンス準拠状況の結果
- 表示されない(24時間待つ・・・!?)
- 半日以上待った結果。このアカウントでの
Public access group
はenabled
なので、確かに設定したポリシーに反している。 - 結果の詳細
- リソース詳細(1)
- リソース詳細(2)
- history情報
4. Enforcement actionsの確認
10.212.0.0/24の追加 -> 成功
118.7.75.128/30の追加 -> 成功
192.168.0.0/24の追加 -> 失敗
残念ながら、2020/10/5時点ではSCC上の本機能は非常に限られており、
- IBM Cloud上のリソースしか制御できない。
- 1日に1回しかScanが発生しない(Scanタイミングも制御できない)
- IAM Access Groupsでの検出できる構成は現状
private_network_only
のみ。またアカウント全体にしか適用できない(そもそも本設定にはリソースグループという概念がないので。影響範囲が大きいため、おいそれとはテストしづらい)。 - Certification Managerではリソースグループごとに適用でき、
private_network_only
のルールに遵守しているかどうかは検出できるが、許可・ブロックのアクションを強制させることができない。
という様々な制約があります。今後の拡充を期待したいところですが、何はともあれIAM Access Groupでのprivate_network_only
の検出について試してみたいと思います。
Config Template
[root@syasudacentos7 ~]# ibmcloud resource service-instance "Cloud Object Storage-SYASUDA"
Retrieving service instance Cloud Object Storage-SYASUDA in all resource groups under account IBM as shiyasu@jp.ibm.com...
OK
Name: Cloud Object Storage-SYASUDA
ID: crn:v1:bluemix:public:cloud-object-storage:global:a/039dbe6794084c7cb514a276dd2345da:2c66d594-86d5-4a50-ba34-cedb18fe3126::
GUID: 2c66d594-86d5-4a50-ba34-cedb18fe3126
Location: global
Service Name: cloud-object-storage
Service Plan Name: standard
Resource Group Name: yasuda
State: active
Type: service_instance
Sub Type:
Created at: 2019-03-27T13:40:04Z
Created by: shiyasu@jp.ibm.com
Updated at: 2019-03-27T13:40:04Z
[root@syasudacentos7 ~]# ibmcloud cos buckets --ibm-service-instance-id crn:v1:bluemix:public:cloud-object-storage:global:a/039dbe6794084c7cb514a276dd2345da:2c66d594-86d5-4a50-ba34-cedb18fe3126::
OK
7 buckets found in your account:
Name Date Created
mybucket-ussouth-test002 Mar 19, 2021 at 02:07:15
mybucket102 Mar 27, 2019 at 13:42:38
mybucket103 Mar 28, 2019 at 04:15:53
mybucket104 Apr 11, 2019 at 04:14:02
mybucket105 Jun 27, 2019 at 00:00:19
mybucket106 Oct 02, 2019 at 02:39:06
mybucket107 Jun 20, 2020 at 06:49:17