このセクションには、ソース コード以外のものでも、作成中の製品のセキュリティにとって重要なものがすべて含まれています。この分野が対象とする問題は、ソース コードに直接関係しないため、この分野の他の部分と分けました。
dnssec_config
ブロックで state
を off
に設定することにより、Cloud DNS Domain の DNSSEC を無効にする Terraform 構成を示しています。
resource "google_dns_managed_zone" "zone-demo" {
...
dnssec_config {
state = "off"
...
}
...
}
allUsers
または allAuthenticatedUsers
に Cloud KMS CryptoKey ロールを付与すると、機密データにだれでもアクセスできてしまいます。enabled
を false
に設定して、データベース インスタンスのバックアップ設定を無効にする Terraform 構成を示しています。
resource "google_sql_database_instance" "database_instance_demo" {
...
settings {
backup_configuration {
enabled = false
...
}
}
}
authorized_networks
ブロックで value
を 0.0.0.0/0
に設定します。/0
の CIDR ブロックは、0.0.0.0 から 255.255.255.255 までの任意の IP アドレスからの接続を受け入れます。
resource "google_sql_database_instance" "db-demo" {
...
settings {
...
ip_configuration {
...
authorized_networks {
name = "any ip"
value = "0.0.0.0/0"
}
...
}
...
}
...
}
allUsers
または allAuthenticatedUsers
に Cloud Storage ロールを付与すると、機密データにだれでもアクセスできてしまいます。uniform_bucket_level_access
を false
に設定することで、IAM と一緒に ACL を使用してストレージ バケットへのアクセスを許可できます。
resource "google_storage_bucket" "bucket-demo" {
...
uniform_bucket_level_access = false
...
}
metadata
引数で enable-oslogin
を false
に設定することにより、SSH アクセスを管理するための IAM ロールの使用を無効にする Terraform 構成を示しています。
resource "google_compute_instance" "compute-instance-demo" {
...
metadata = {
enable-oslogin = false
...
}
...
}
service_account
ブロックはありません。
resource "google_compute_instance" "instance-demo" {
name = "name-demo"
machine_type = "e2-micro"
boot_disk {
...
}
network_interface {
...
}
}
can_ip_forward
を true
に設定して、IP フォワードを有効にします。
resource "google_compute_instance" "compute_instance_demo" {
...
can_ip_forward = true
...
}
enable_confidential_compute
を false
に設定して、Confidential VM を無効にする Terraform 構成を示しています。
resource "google_compute_instance" "default" {
...
confidential_instance_config {
enable_confidential_compute = false
}
...
}
disk_encryption_key
ブロックがないため、データ暗号化キーを保護する CSEK はありません。
resource "google_compute_disk" "compute-disk-demo" {
name = "test-disk"
type = "pd-ssd"
}
metadata
引数の block-project-ssh-keys
を false
に設定することで、プロジェクト全体の SSH ログインを許可する Terraform 構成を示しています。
resource "google_compute_instance" "compute_instance_demo" {
...
metadata = {
block-project-ssh-keys = false
...
}
...
}
metadata
引数の serial-port-enable
を true
に設定することで、インタラクティブなシリアル コンソール アクセスを許可します。
resource "google_compute_instance" "compute_instance_demo" {
...
metadata = {
serial-port-enable = true
...
}
...
}
shielded_instance_config
ブロックで enable_integrity_monitoring
を false
に設定します。推奨されるすべての Shield VM オプションが有効になっているわけではありません。
resource "google_compute_instance" "compute_instance_demo" {
...
shielded_instance_config {
enable_integrity_monitoring = false
enable_secure_boot = true
enable_vtpm = true
}
...
}
https_redirect
を false
に設定することで、クライアントが通信に HTTP を使用することを許可する Edge Cache サービスを定義する Terraform 構成を示しています。
resource "google_network_services_edge_cache_service" "srv_demo" {
...
routing {
...
path_matcher {
...
route_rule {
...
url_redirect {
https_redirect = false
}
}
}
}
}
master_authorized_networks_config
ブロックで定義せずにパブリック クラスターをセットアップしています。その結果、GKE コントロール プレーンの API エンドポイントにはパブリック アクセスが可能です。
resource "google_container_cluster" "cluster_demo" {
name = "name-demo"
}
master_auth
ブロックの issue_client_certificate
を true
に設定することで、GKE クライアントの証明書ベースの認証を有効にしています。
resource "google_container_cluster" "container_cluster_demo" {
...
master_auth {
client_certificate_config {
issue_client_certificate = true
...
}
...
}
...
}