IBM Cloud Docs
データ アクセス サービス (DAS) プロキシを使用して S3 および S3 互換ストレージにアクセスする

データ アクセス サービス (DAS) プロキシを使用して S3 および S3 互換ストレージにアクセスする

外部アプリケーションやクエリエンジンは、S3 および S3 互換ストレージにアクセスできます。これらのストレージは、watsonx.data によって管理されています。

データ・アクセス・サービス(DAS)プロキシ機能は、 2.1.2 で完全に削除され、 watsonx.data では利用できなくなりました。 データ・アクセス・サービス(DAS)プロキシ機能を使用してオブジェクト・ストレージ( S3、ADLS、ABS)にアクセスすることはできません。

S3とS3の互換ストレージにアクセスする:

  1. watsonx.data情報ウィンドウからDASエンドポイントを取得する。 クリック i ホームページのアイコンをクリックすると、情報ウィンドウが開きます。

  2. S3 エンドポイントを、Java コード内の DAS エンドポイントに置き換えます。

    <DAS endpoint>/cas/v1/proxy
    
  3. Javaコードの中で、以下のようにアクセスキーをエンコードされた値に置き換える:

    base64{<crn>|Basic base64{ibmlhapikey_<user_id>:<IAM_APIKEY>}}
    

    を取得するにはBase64エンコードされた文字列の場合は、次のいずれかのコマンドを使用します。

    printf "username:<apikey>" | base64
    
    echo -n "username:<apikey>" | base64
    

Javaコード例

        String bucketName = "bucket1";
        String keyName = "folder1/file1";
        # replace the target object store endpoint with the DAS proxy endpoint
        String endpoint = "<DAS endpoint get from About page>/cas/v1/proxy";
        /** Replace the Access Key with watsonx.data user name and API key following the below base64 encoded method.
        * For Cloud Pak for Data: base64{<instanceid>|ZenAPIkey base64{username:<apikey>}}
        * For IBM Cloud: base64{<crn>|Basic base64{ibmlhapikey_<user_id>:<IAM_APIKEY>}}
        * For AWS: base64{<crn>|Basic base64{ibmlhapikey_ServiceId-<service_id>:<APIKEY>}}
        */
        String accessKey = "encoded value";
        String secretKey = "any string";

        BasicAWSCredentials cos_cred = new BasicAWSCredentials(accessKey, secretKey);
        EndpointConfiguration cosEndPoint = new EndpointConfiguration(endpoint, "us-east");
        AmazonS3 s3Client = AmazonS3ClientBuilder.standard().withPathStyleAccessEnabled(true)
                .withCredentials(new AWSStaticCredentialsProvider(cos_cred))
                .withEndpointConfiguration(cosEndPoint).build();
        GetObject.GetObjectTest(s3Client, bucketName, keyName);

詳細についてはS3 REST API権限については、S3 REST API 権限