すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:Terraform を使用した OSS の管理

最終更新日:Mar 01, 2026

Terraform は、クラウド リソースを安全かつ効率的にプロビジョニングおよび管理できるオープンソースツールです。本トピックでは、Terraform を使用して Object Storage Service (OSS) バケットを作成する方法について説明します。

説明

数回のクリックで、本トピックのサンプルコードを Terraform Explorer で直接実行できます。

前提条件

開始する前に、以下を確認してください。

  • セキュリティリスクを軽減するために、最小限必要な権限を持つ Resource Access Management (RAM) ユーザーを作成します。これにより、Alibaba Cloud アカウントの AccessKey ペアが意図せず漏洩するのを防ぎます。詳細については、「RAM ユーザーの作成」および「RAM ユーザーへの権限付与」をご参照ください。次のポリシーを RAM ユーザーにアタッチします。

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "oss:*",
          "Resource": "*"
        }
      ]
    }
  • 次のいずれかの方法で Terraform 実行環境をセットアップします。

    • Terraform Explorer: Alibaba Cloud が提供する無料のウェブベースの Terraform 実行環境です。ローカルインストールなしで Terraform にログインして使用します。クイックな実験とデバッグに最適です。

    • Cloud Shell: Terraform はプリインストールされており、認証情報は事前設定されています。低コストで Cloud Shell で Terraform コマンドを直接実行します。クイックな実験とデバッグに最適です。

    • ローカルインストール: ローカルコンピューターに Terraform をインストールして構成します。ネットワークの状態が悪い場合やカスタム開発環境に最適です。

説明

この例で作成された一部のリソースには料金が発生します。予期せぬ料金を回避するため、不要になった場合はリソースをリリースまたはサブスクライブ解除してください。

Terraform リソース

この例では、次の Terraform リソースを使用します。

リソース 説明
alicloud_oss_bucket OSS バケットを作成します
alicloud_oss_bucket_acl バケットのアクセス制御リスト (ACL) を構成します

バケットの作成

  1. 作業ディレクトリを作成し、その中に main.tf という名前の構成ファイルを作成します。次のコードを main.tf にコピーします。

    variable "region"{
      default = "cn-beijing"
    }
    
    provider "alicloud"{
      region = var.region
    }
    
    resource "random_uuid" "default" {
    }
    
    # バケットを作成します。
    resource "alicloud_oss_bucket" "bucket" {
      bucket = substr("tf-example-${replace(random_uuid.default.result, "-", "")}", 0, 16)
    }
    
    # バケットの ACL を構成します。
    resource "alicloud_oss_bucket_acl" "bucket-ac"{
      bucket = alicloud_oss_bucket.bucket.id
      acl = "private"
    }
  2. Terraform 実行環境を初期化します。

    terraform init

    次の出力は、初期化が成功したことを示します。

    Terraform has been successfully initialized!
    
    You may now begin working with Terraform. Try running "terraform plan" to see
    any changes that are required for your infrastructure. All Terraform commands
    should now work.
    
    If you ever set or change modules or backend configuration for Terraform,
    rerun this command to reinitialize your working directory. If you forget, other
    commands will detect it and remind you to do so if necessary.
  3. 構成を適用します。

    terraform apply

    プロンプトで yes と入力し、Enter キーを押します。次の出力は、リソースが正常に作成されたことを示します。

    You can apply this plan to save these new output values to the Terraform state, without changing any real infrastructure.
    
    Do you want to perform these actions?
      Terraform will perform the actions described above.
      Only 'yes' will be accepted to approve.
    
      Enter a value: yes
    
    
    Apply complete!  Resources: 3 added, 0 changed, 0 destroyed.
  4. 次のいずれかの方法で結果を確認します。

    terraform show コマンドの使用

    作成されたリソースの詳細を表示するには、作業ディレクトリで次のコマンドを実行します。

    terraform show

    terraform show output

    OSS コンソールの使用

    1. OSS コンソールにログインします。左側のナビゲーションウィンドウで、バケット をクリックして、[バケット] ページで新しく作成されたバケットを表示します。

      Buckets page

    2. 作成されたバケットの名前をクリックします。左側のナビゲーションツリーで、権限管理 > ACL を選択します。[ACL] タブで、バケットの ACL を表示します。

      ACL settings

リソースのリリース

Terraform を介して作成または管理されたリソースが不要になった場合は、次のコマンドを実行してそれらをリリースします。terraform destroy コマンドの詳細については、「一般的なコマンド」をご参照ください。

terraform destroy

完全な例

説明

数回のクリックで、本トピックのサンプルコードを Terraform Explorer で直接実行できます。

サンプルコード

variable "region"{
  default = "cn-beijing"
}

provider "alicloud"{
  region = var.region
}

resource "random_uuid" "default" {
}

# バケットを作成します。
resource "alicloud_oss_bucket" "bucket" {
  bucket = substr("tf-example-${replace(random_uuid.default.result, "-", "")}", 0, 16)
}

# バケットの ACL を構成します。
resource "alicloud_oss_bucket_acl" "bucket-ac"{
  bucket = alicloud_oss_bucket.bucket.id
  acl = "private"
}

より完全な例については、GitHub の landing-with-terraform quickstarts リポジトリをご参照ください。