https://learn.microsoft.com/ja-jp/azure/backup/blob-backup-configure-manage?tabs=operational-backup
別ディレクトリでストレージアカウントのtfファイルが管理されている前提。roleの権限は個々のストレージアカウントを作成すると煩雑になってしまうので、サブスクリプション全体を見れるように権限一つにするのがベスト。
- app/main.tf
1 2 3 4 5 6 7 8 9 10 11 |
~省略~ data "terraform_remote_state" "backup-hoge-blob" { backend = "azurerm" config = { use_oidc = true resource_group_name = "hoge" storage_account_name = "hoge" container_name = "tfstate" key = "backup-hoge-blob.tfstate" } } |
- app/storage_account.tf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
~省略~ resource "azurerm_data_protection_backup_instance_blob_storage" "backup-hoge-blob" { name = "backup-instance" vault_id = data.terraform_remote_state.backup-blob-hoge.outputs.blob-backup-vault location = data.terraform_remote_state.backup-blob-hoge.outputs.resource-group-location storage_account_id = azurerm_storage_account.blade-check-hoge.id backup_policy_id = data.terraform_remote_state.backup-blob-hoge.outputs.blog-backup-policy blob_properties { change_feed_enabled = true versioning_enabled = true container_delete_retention_policy { days = 7 } delete_retention_policy { days = 7 } restore_policy { days = 6 } } } |
- backup-hoge/client_config.tf
1 2 3 4 5 6 |
data "azurerm_client_config" "current" { } locals { tenant_id = data.azurerm_client_config.current.tenant_id subscription_id = data.azurerm_client_config.current.subscription_id } |
- backup-hoge/outputs.tf
1 2 3 4 5 6 7 8 9 10 11 12 13 |
~省略~ output "blob-backup-vault" { value = azurerm_data_protection_backup_vault.backup-hoge-blob-vault.id } output "resource-group-location" { value = azurerm_resource_group.backup-hoge-blob.location } output "blob-backup-policy" { value = azurerm_data_protection_backup_policy_blob_storage.backup-hoge-blob-policy.id } |
- backup-hoge/rs.tf
1 2 3 4 5 |
resource "azurerm_resource_group" "backup-hoge" { name = "backup-hoge-blob" location = "japaneast" tags = local.tags } |
- backup-hoge/data_protection_backup.tf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
resource "azurerm_data_protection_backup_vault" "backup-hoge-blob-vault" { name = "backup-hoge-blob-vault" resource_group_name = azurerm_resource_group.backup-hoge-blob.name location = azurerm_resource_group.backup-hoge-blob.location datastore_type = "OperationalStore" redundancy = "LocallyRedundant" #GRSの場合はGeoRedundant identity { type = "SystemAssigned" } } resource "azurerm_data_protection_backup_policy_blob_storage" "backup-hoge-blob-policy" { name = "blob-backup-policy" vault_id = azurerm_data_protection_backup_vault.backup-hoge-blob-vault.id retention_duration = "P7D" #7日の場合 } resource "azurerm_role_assignment" "backup-hoge-blob" { scope = "/subscriptions/${data.azurerm_client_config.current.subscription_id}" role_definition_name = "Storage Account Backup Contributor" principal_id = azurerm_data_protection_backup_vault.backup-hoge-blob-vault.identity[0].principal_id } |
Was this helpful?
0 / 0
1989年生まれのFindy/SRE。ホスティングから大規模なアドテクなどのインフラエンジニアとして携わる。現在はサービスの信頼性向上、DevOps、可用性、レイテンシ、パフォーマンス、モニタリング、オブザーバビリティ、緊急対応、AWSでのインフラ構築、Docker開発環境の提供、IaC、新技術の検証、リファクタリング、セキュリティ強化、分析基盤の運用などを担当している。個人事業主では数社サーバー保守とベンチャー企業のSREインフラコンサルティングやMENTA/TechBullで未経験者にインフラのコーチング/コミュニティマネージャーとして立ち上げと運営をしている。また、過去「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。