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

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

最終更新日:Apr 21, 2026

Terraform は、クラウドリソースを安全かつ効率的に作成、管理するためのオープンソースツールです。このトピックでは、バケットを作成する方法について説明します。

説明

このチュートリアルのサンプルコードは、ワンクリックで実行できます。今すぐ実行

前提条件

  • セキュリティリスクを軽減するため、このチュートリアルでは最小限の権限を持つ RAM ユーザーを使用します。詳細については、「RAM ユーザーの作成」および「RAM ユーザー権限の管理」をご参照ください。このチュートリアルには、次の権限ポリシーが必要です:

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "oss:*",
          "Resource": "*"
        }
      ]
    }
  • Terraform の実行環境を準備します。次のいずれかの方法で Terraform を使用できます。

    • Explorer:Alibaba Cloud が提供するオンライン実行環境です。この方法では、迅速、便利、かつコスト効率よく Terraform を試したりデバッグしたりできます。

    • Terraform を使用して迅速にリソースを作成する:Alibaba Cloud Shell には Terraform がプリインストールされており、認証情報も事前設定されています。この方法では、低コストで迅速かつ便利に Terraform にアクセスできます。

    • ローカルマシンに Terraform をインストールして設定する:ネットワーク接続が不安定な場合や、カスタマイズされた開発環境が必要な場合は、この方法を使用します。

説明

このチュートリアルで使用される一部のリソースには料金が発生します。予期しない課金を避けるため、不要になったリソースはリリースしてください。

使用するリソース

バケットの作成

  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)
    }
    
    # バケットのアクセス制御を設定します。
    resource "alicloud_oss_bucket_acl" "bucket-ac"{
      bucket = alicloud_oss_bucket.bucket.id
      acl = "private"
    }
    
  2. 次のコマンドを実行して、Terraform の実行環境を初期化します。

    terraform init

    次の出力は、Terraform が正常に初期化されたことを示します。

    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 によって作成されたリソースを表示します:

    terraform show

    image

    コンソール

    1. Object Storage Service (OSS) コンソールにログインします。左側のナビゲーションウィンドウで バケット をクリックして、作成したバケットを表示します。

      image

    2. 新しい バケット名 をクリックし、権限管理 > ACL タブに移動して、読み取り/書き込み権限を表示します。

      image

リソースのクリーンアップ

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

terraform destroy

完全な例

説明

この例のサンプルコードは、ワンクリックで実行できます。今すぐ実行

サンプルコード

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)
}

# バケットのアクセス制御を設定します。
resource "alicloud_oss_bucket_acl" "bucket-ac"{
  bucket = alicloud_oss_bucket.bucket.id
  acl = "private"
}

その他の例については、「その他の完全な例」のプロダクト固有のディレクトリをご参照ください。