LoginSignup
0
0

[Cloud Storage API(V2)] JavaでCloud StorageのHMACキー情報を作成・更新・削除する

Posted at

Cloud Storage API V2(Java)を使用して、
Cloud StorageのHMACキー情報を作成・更新・削除する方法
についてご紹介します。

HMACキーとは
アカウントに関連付けられた認証情報の一種です。
HMACキーを使用して署名を作成すると、その署名がCloudStorageに対するリクエストに組み込まれます。

APIを利用する環境の準備から始める場合や、コードを実行する際は、
⧉[Cloud Storage API(V2)] JavaでCloud Storageを使う
を参照ください。

No 目次
1 HMACキーリストを作成
1 スコープ
2 実行
3 レスポンスの内容
2 HMACキーを更新
1 スコープ
2 実行
3 レスポンスの内容
3 HMACキーを削除
1 スコープ
2 実行
3 レスポンスの内容

1. HMACキーリストを作成

指定したプロジェクトのHMACキーを作成します。

1.1. スコープ

このAPIを実行するには、以下のいずれかのスコープを指定してください。

StorageScopes.CLOUD_PLATFORM
StorageScopes.DEVSTORAGE_FULL_CONTROL

⧉[Cloud Storage API(V2)] JavaでCloud Storageを使う(2.2 Storageインスタンスを取得)
でスコープを指定してください。

1.2. 実行

public static void main(String[] args) throws Exception{
    Storage storage = getStorage();
    Storage.Projects projects = storage.projects();
    
    Storage.Projects.HmacKeys hmacKeys = projects.hmacKeys();
    Storage.Projects.HmacKeys.Create create = hmacKeys.create("プロジェクトID","サービスアカウントのメールアドレス");
    
    HmacKey res = create.execute();
    System.out.println(res);
}

1.2.1. HTTPリクエスト

POST : https://storage.googleapis.com/storage/v1/projects/{プロジェクトID}/hmacKeys
が実行されます。

1.2.2. クエリパラメータ

Storage.Projects.HmacKeysのsetメソッドにより、クエリパラメータを追加できます。

メソッド 引数 説明
setServiceAccountEmail String サービスアカウントのメールアドレス

1.2.3. リクエストボディ

リクエストボディはありません。

1.3. レスポンスの内容

HmacKey

メソッド 戻り値 説明
getKind String リソースの種類
固定文字列:"storage#hmacKey"
getSecret String HMAC秘密鍵のマテリアル
getMetadata HmacKeyMetadata HMACキーのメタデータ

HmacKeyMetadata

メソッド 戻り値 説明
getId String HMACキーID
getKind String リソースの種類
固定文字列:"storage#hmacKeyMetadata"
getAccessId String HMACキーのアクセスID
getEtag String HMACキーのHTTPエンティティタグ
getSelfLink String リソースへのリンク
getProjectId String キーが認証するサービスアカウントを所有するプロジェクトID
getServiceAccountEmail String キーに関連付けられたサービスアカウントのメールアドレス
getState String キーの状態
"ACTIVE"、"INACTIVE"、"DELETED"
getTimeCreated DateTime HMACキーの作成時刻
getUpdated DateTime HMACキーメタデータの更新時刻

2. HMACキーを更新

指定したHMACキーのメタデータを更新します。

2.1. スコープ

このAPIを実行するには、以下のいずれかのスコープを指定してください。

StorageScopes.CLOUD_PLATFORM
StorageScopes.DEVSTORAGE_FULL_CONTROL

⧉[Cloud Storage API(V2)] JavaでCloud Storageを使う(2.2 Storageインスタンスを取得)
でスコープを指定してください。

2.2. 実行

HMACキーのアクセスIDは、HmacKeyMetadataのgetAccessId()で取得できる値を使用します。

public static void main(String[] args) throws Exception{
    Storage storage = getStorage();
    Storage.Projects projects = storage.projects();
    Storage.Projects.HmacKeys hmacKeys = projects.hmacKeys();
    
    HmacKeyMetadata content = new HmacKeyMetadata();
    //更新内容を設定
    
    Storage.Projects.HmacKeys.Update update = hmacKeys.update("プロジェクトID","HMACキーのアクセスID",content);
    
    HmacKeyMetadata res = update.execute();
    System.out.println(res);
}

2.2.1. HTTPリクエスト

PUT: https://storage.googleapis.com/storage/v1/projects/{プロジェクトID}/hmacKeys/{HMACキーのアクセスID}
が実行されます。

2.2.2. クエリパラメータ

クエリパラメータはありません。

2.2.3. リクエストパラメータ

HmacKeyMetadataのsetメソッドにより、クエリパラメータを追加できます。

メソッド 引数 説明
setEtag String 更新するHMACキーのHTTP1.1エンティティタグ
(一致しない場合は更新されません)
setState String キーの状態
"ACTIVE"、"INACTIVE"、"DELETED"

2.3. レスポンスの内容

HmacKeyMetadata

2.3. レスポンスの内容(HmacKeyMetadata)と同じです。

3. HMACキーを削除

指定したHMACキーを削除します。

キーの状態(2.2.3. リクエストパラメータのstate)が
"ACTIVE"の状態では削除することはできません。
削除するにはstateを"INACTIVE"に変更してください。

3.1. スコープ

このAPIを実行するには、以下のいずれかのスコープを指定してください。

StorageScopes.CLOUD_PLATFORM
StorageScopes.DEVSTORAGE_FULL_CONTROL

⧉[Cloud Storage API(V2)] JavaでCloud Storageを使う(2.2 Storageインスタンスを取得)
でスコープを指定してください。

3.2. 実行

HMACキーのアクセスIDは、HmacKeyMetadataのgetAccessId()で取得できる値を使用します。

public static void main(String[] args) throws Exception{
    Storage storage = getStorage();
    Storage.Projects projects = storage.projects();
    Storage.Projects.HmacKeys hmacKeys = projects.hmacKeys();
    
    Storage.Projects.HmacKeys.Delete delete = hmacKeys.delete("プロジェクトID","HMACキーのアクセスID");
    
    delete.execute();
}

3.2.1. HTTPリクエスト

DELETE: https://storage.googleapis.com/storage/v1/projects/{プロジェクトID}/hmacKeys/{HMACキーのアクセスID}
が実行されます。

3.2.2. クエリパラメータ

クエリパラメータはありません。

3.2.3. リクエストボディ

リクエストボディはありません。

3.3. レスポンスの内容

レスポンスはありません。
削除に失敗した場合は例外が発生します。



おしまい。。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0