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

Object Storage Service:RAMユーザーのAccessKeyペアを使用してリクエストを開始する

最終更新日:Dec 15, 2023

RAMユーザーに権限を付与し、RAMユーザーのAccessKeyペアを使用してOSSリソースにアクセスできます。 OSSリソースにアクセスする場合、より高いアクセスセキュリティを確保するために、Alibaba CloudアカウントではなくRAMユーザーのAccessKeyペアを使用することを推奨します。

ステップ1: RAMユーザーの作成

  1. Alibaba Cloudアカウントまたは管理者権限を持つRAMユーザーを使用して、RAMコンソールにログインします。

  2. 左側のナビゲーションウィンドウで、[ID] > [ユーザー] を選択します。

  3. [ユーザー] ページで、[ユーザーの作成] をクリックします。

  4. [ユーザーの作成] ページの [ユーザーアカウント情報] セクションで、次のパラメーターを設定します。

    • ログオン名: ログオン名の長さは最大64文字で、英数字、ピリオド (.) 、ハイフン (-) 、アンダースコア (_) を使用できます。

    • 表示名: 表示名の長さは最大128文字です。

    • タグ: editアイコンをクリックして、タグキーとタグ値を入力します。 RAMユーザーに1つ以上のタグを追加できます。 これにより、タグに基づいてRAMユーザーを管理できます。

    説明

    ユーザーの追加をクリックして、一度に複数の RAM ユーザーを作成できます。

  5. [アクセスモード] セクションで、[OpenAPIアクセス] を選択し、[OK] をクリックします。

  6. [コピー] をクリックして、RAMユーザーのAccessKeyペアを保存します。

ステップ2: RAMユーザーにオブジェクトをアップロードする権限を付与する

  1. オブジェクトをアップロードする権限を付与するカスタムポリシーを作成します。

    1. 左側のナビゲーションウィンドウから、 [権限] > ポリシー を選択します。

    2. [ポリシー] ページで ポリシーの作成 をクリックします。

    3. ポリシーの作成 ページで、[JSON] タブをクリックします。 ポリシードキュメントを入力して、examplebucketバケットのexampledirディレクトリにオブジェクトをアップロードする権限をロールに付与します。 次のサンプルコードは、ロールに権限を付与する方法を示しています。

      警告

      以下は参考例です。 ユーザーに過度の権限を与えないように、要件に基づいてきめ細かいRAMポリシーを構成する必要があります。 詳細なRAMポリシーを設定する方法の詳細については、「RAMポリシーの一般的な例」トピックの「例9: RAMまたはSTSを使用してユーザーにOSSリソースへのアクセスを許可する」セクションをご参照ください。

      {
        "Version": "1",
        "Statement": [
          {
            "Effect": "Allow",
            "Action": "oss:PutObject" 、
            "Resource": "acs:oss:*:*:examplebucket/exampledir/*"
          }
        ]
      }
    4. [次へ] をクリックしてポリシー情報を編集します。

    5. [基本情報] セクションで、名前[RamTestPolicy] に設定し、[OK] をクリックします。

  2. カスタムポリシーをRAMユーザーにアタッチします。

    1. 左側のナビゲーションウィンドウで、アイデンティティ > ユーザー を選択します。

    2. ユーザー ページで、カスタムポリシーをアタッチするRAMユーザーを見つけます。

    3. [ユーザー] ページで、RAMユーザーの [操作] 列の 権限の追加 をクリックします。

    4. 権限の追加 パネルで、カスタムポリシー タブをクリックします。 [RamTestPolicy] ポリシーを選択します。

    5. [OK] をクリックします。

手順3: RAMユーザーのAccessKeyペアを使用してオブジェクトをOSSにアップロードする

次のJavaコードは、exampletest.txtという名前のオブジェクトをD :\\ localpathパスからexamplebucketという名前のバケットのexampledirディレクトリにアップロードする方法の例を示しています。

com.aliyun.oss.OSSをインポートします。impor t com.aliyun.oss.com mon.auth.*;
com.aliyun.oss.OSSClientBuilderをインポートします。com.aliyun.oss.mo del.PutObjectRequestをインポートします。java.io. ファイルをインポートします。publicクラスRAMAccessKeySample {
    public static void main(String[] args) {
        // バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントをhttps://oss-cn-hangzhou.aliyuncs.comに設定します。 
        String endpoint = "yourEndpoint";

        // プロジェクトコードにアクセス資格情報を保存しないことをお勧めします。 そうしないと、アクセス資格情報が漏洩する可能性があります。 その結果、アカウント内のすべてのリソースのセキュリティが侵害されます。 この例では、アクセス資格情報は環境変数から取得されます。 サンプルコードを実行する前に、環境変数を設定する必要があります。 
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();

        // Create an OSSClient instance. 
        OSS ossClient = new OSSClientBuilder().build(endpoint, credentialsProvider);

        // PutObjectRequestオブジェクトを作成します。 
        // examplebucketなどのバケット名、exampledir/exampleobject.txtなどのオブジェクトのフルパス、およびアップロードするローカルファイルのフルパスを指定します。 バケット名をフルパスに含めないでください。 
        // デフォルトでは、ローカルファイルのパスを指定しないと、サンプルプログラムが属するプロジェクトのローカルパスからファイルがアップロードされます。 
        PutObjectRequest putObjectRequest = new PutObjectRequest("examplebucket", "exampledir/exampleobject.txt", new File("D :\\ localpath\\examplefile.txt"));

        // 次のコードは、オブジェクトのストレージクラスとアクセス制御リスト (ACL) を設定する方法の例を示しています。 
        // ObjectMetadata metadata=新しいObjectMetadata();
        // metadata.setHeader(OSSHeaders.OSS_STORAGE_CLASS, StorageClass.Standard.toString());
        // metadata.setObjectAcl(CannedAccessControlList.Private);
        // putObjectRequest.setMetadata (メタデータ);

        // ローカルファイルをアップロードします。 
        ossClient.putObject(putObjectRequest);

        // Shut down the OSSClient instance. 
        ossClient.shutdown();
    }
}

他のプログラミング言語のOSS SDKの例の詳細については、以下のトピックを参照してください。

オブジェクトのアップロード後にURLを取得する方法の詳細については、「署名付きURLでオブジェクトを共有する」をご参照ください。