Object Storage Service (OSS) SDK for Javaを使用してリクエストを開始するには、IDとアクセス許可の検証に使用されるアクセス資格情報を設定する必要があります。 認証と承認の要件に基づいて、さまざまなタイプのアクセス資格情報を選択できます。 このトピックでは、一時的なアクセス資格情報、長期アクセス資格情報、およびOpenID Connect (OIDC) アクセス資格情報を設定する方法について説明します。
前提条件
OSS SDK for Javaがインストールされています。 詳細については、「インストール」をご参照ください。
アクセス資格情報
次のタイプのアクセス資格情報から選択できます。
一時的なアクセス資格情報: セキュリティを強化する必要があるシナリオでは、一時的なアクセス資格情報を使用することを推奨します。 たとえば、一時的なアクセス資格情報を使用して、アプリケーションにOSSへの一時的なアクセスを許可できます。 一時的なアクセス資格情報は指定された期間内に有効であり、資格情報の漏洩を防ぐのに役立ちます。 一時的なアクセス資格情報は、過度のアクセス許可によって引き起こされるセキュリティリスクを防ぐために、きめ細かいアクセス制御をサポートします。 詳細については、「一時的なアクセス資格情報の使用」をご参照ください。
長期アクセス資格情報: セキュリティを確保するため、長期アクセス資格情報を使用しないことを推奨します。 利便性を必要とするシナリオでは、長期アクセス資格情報により、長期間の複数の更新が不要になります。 Alibaba Cloudアカウントのセキュリティを確保するため、3か月ごとに長期アクセス資格情報を変更することを推奨します。 長期アクセス資格情報が漏洩した場合、または使用されなくなった場合は、セキュリティリスクを軽減するために、長期アクセス資格情報を削除または無効にすることを推奨します。 詳細については、「長期アクセス資格情報の使用」をご参照ください。
OIDCアクセス資格情報: 信頼されていないアプリケーションをコンテナークラスターにデプロイする必要がある場合、メタデータサービスを使用して、アプリケーションがワーカーに関連付けられたインスタンスのRAMロールのSecurity Token Service (STS) トークンにアクセスしないようにすることができます。 この場合、OIDCアクセス資格情報を使用できます。 OIDCは、OAuth 2.0に基づく認証プロトコルです。 OIDCを使用して、信頼できないアプリケーションに最小レベルのアクセスを許可できます。 OIDCアクセス資格情報により、信頼できないアプリケーションはクラウドリソースのセキュリティに影響を与えずにSTSトークンに安全にアクセスできます。 RAMロールは、OIDCベースのシングルサインオン (SSO) をサポートしています。 詳細については、「OIDCアクセス認証情報」をご参照ください。
使用上の注意
このトピックでは、macOS、Linux、およびWindowsでシェルコマンドを実行して環境変数を設定する方法について説明します。 環境変数を適切に設定すると、コマンドラインで起動したプログラムで必要な設定を認識できます。 統合開発環境 (IDE) でプログラムを起動する場合は、このトピックを参照して、IDEで環境変数を個別に設定する必要があります。
一時的なアクセス資格情報の使用
OSS SDK for Javaを使用してOSSリソースに一時的にアクセスする場合は、次のいずれかの方法を使用して一時的なアクセス資格情報を設定できます。
STSの一時的なアクセス資格情報の設定: OSSリソースへの期限付きアクセスを許可する場合は、STSから取得した一時的なアクセス資格情報を使用する必要があります。 一時的なアクセス資格情報は、RAMユーザーのAccessKeyペアの公開を回避し、アクセスセキュリティを強化します。
RAMユーザーのRAMロールの設定: Alibaba CloudアカウントのRAMユーザーまたは別のAlibaba CloudアカウントのRAMユーザーにOSSリソースへのアクセス権限を付与する場合は、RAMユーザーが引き受けるRAMロールを設定できます。
ECS (Elastic Compute Service) インスタンスのRAMロールの設定: ECSインスタンスからOSSリソースにアクセスする場合、ECSインスタンスのRAMロールを使用してOSSリソースにアクセスできます。 RAMロールをECSインスタンスにアタッチして、STSから取得した一時的なアクセス資格情報を使用して、インスタンスからOSSリソースにアクセスできます。 STSの一時的なアクセス資格情報は自動的に生成および更新されます。 アプリケーションは、インスタンスメタデータURLを使用してSTSの一時的なアクセス資格情報を取得できます。
STSの一時的なアクセス資格情報の設定
RAM ユーザーを作成します。
詳細については、「RAM ユーザーの作成」をご参照ください。
AliyunSTSAssumeRoleAccess
ポリシーをRAMユーザーにアタッチします。詳細については、「RAM ユーザーへの権限の付与」をご参照ください。
RAMユーザーを使用してSTSのAssumeRole操作を呼び出し、一時的なアクセス資格情報を取得します。
詳細については、「AssumeRole」をご参照ください。
一時的なアクセス資格情報を設定します。
環境変数
アクセス資格情報を格納するように環境変数を設定します。
macOS
ターミナルを開きます。
以下のコマンドを実行します。
nano ~/.bash_profile
一時的なアクセス資格情報 (AccessKeyId、AccessKeySecret、およびSecurityToken) をファイルの最後に追加します。
export OSS_ACCESS_KEY_ID=STS.NV5ZCwphFSXqscqUHAKbH **** エクスポートOSS_ACCESS_KEY_SECRET=IrVTNZNy5yQelTETg0cZML3TQn **** export OSS_SESSION_TOKEN=CAES + wMIARKAAZhjH0EUOIhJMQBMjRywXq7MQ/cjLYg80Aho1ek0Jm63XMhr9Oc5s ˙˙∂ ∂ + mRR9KAbHUefqH + rdjZqjTF7p2m1wJXP8S6k + G2MpHrUe6TYBkJ43GhhTVFMuM3BZajY3VjZWOXBIODRIR1FKZjIiEjMzMzE0MjY0NzM5MTE4NjkxMSoLY2xpZGSSDgSDGAGESGTETqOio6c2RrLWRlbW8vKgoUYWNzOm9zczoqOio6c2RrLWRlbW9KEDExNDg5MzAxMDcyNDY4MThSBTI2ODQyWg9Bc3N1bWVkUm9sZVVzZXJgAGoSMzMzMTQyNjQ3MzkxMTg2OTExcglzZGstZGVt ****
Ctrl
+X
を押し、Y
を押してファイルを保存し、Enter
を押してファイルを閉じます。次のコマンドを実行して変更を適用します。
source ~/.bash_profile
次のコマンドを実行して、環境変数の設定を確認します。
エコー $OSS_ACCESS_KEYID エコー $OSS_ACCESS_KEY_SECRET エコー $OSS_SESSION_トークン
サンプル成功応答:
STS.NV5ZCwphFSXqscqUHAKbH **** IrVTNZNy5yQelTETg0cZML3TQn **** CAES + wMIARKAAZhjH0EUOIhJMQBMjRywXq7MQ/cjLYg80Aho1ek0Jm63XMhr9Oc5s ˙∂ ∂ ˙+ + mRR9KAbHUefqH + rdjZqjTF7p2m1wJXP8S6k + ****
Linux
ターミナルを開きます。
以下のコマンドを実行します。
sudo vim /etc/profile
一時的なアクセス資格情報 (AccessKeyId、AccessKeySecret、およびSecurityToken) をファイルの最後に追加します。
export OSS_ACCESS_KEY_ID=STS.NV5ZCwphFSXqscqUHAKbH **** エクスポートOSS_ACCESS_KEY_SECRET=IrVTNZNy5yQelTETg0cZML3TQn **** export OSS_SESSION_TOKEN=CAES + wMIARKAAZhjH0EUOIhJMQBMjRywXq7MQ/cjLYg80Aho1ek0Jm63XMhr9Oc5s ˙˙∂ ∂ + mRR9KAbHUefqH + rdjZqjTF7p2m1wJXP8S6k + G2MpHrUe6TYBkJ43GhhTVFMuM3BZajY3VjZWOXBIODRIR1FKZjIiEjMzMzE0MjY0NzM5MTE4NjkxMSoLY2xpZGSSDgSDGAGESGTETqOio6c2RrLWRlbW8vKgoUYWNzOm9zczoqOio6c2RrLWRlbW9KEDExNDg5MzAxMDcyNDY4MThSBTI2ODQyWg9Bc3N1bWVkUm9sZVVzZXJgAGoSMzMzMTQyNjQ3MzkxMTg2OTExcglzZGstZGVt ****
[Esc]
を押して編集モードを終了します。 次に、:wq
と入力し、enter
を押してファイルを保存して閉じます。次のコマンドを実行して変更を適用します。
source /etc/profile
次のコマンドを実行して、環境変数の設定を確認します。
エコー $OSS_ACCESS_KEYID エコー $OSS_ACCESS_KEY_SECRET エコー $OSS_SESSION_トークン
サンプル成功応答:
STS.NV5ZCwphFSXqscqUHAKbH **** IrVTNZNy5yQelTETg0cZML3TQn **** CAES + wMIARKAAZhjH0EUOIhJMQBMjRywXq7MQ/cjLYg80Aho1ek0Jm63XMhr9Oc5s ˙∂ ∂ ˙+ + mRR9KAbHUefqH + rdjZqjTF7p2m1wJXP8S6k + ****
Windows
CLIを開きます。
次のコマンドを実行して、一時的なアクセス資格情報 (AccessKeyId、AccessKeySecret、およびSecurityToken) の環境変数を設定します。
set OSS_ACCESS_KEY_ID=STS.NV5ZCwphFSXqscqUHAKbH **** セットOSS_ACCESS_KEY_SECRET=IrVTNZNy5yQelTETg0cZML3TQn **** set OSS_SESSION_TOKEN=CAES + wMIARKAAZhjH0EUOIhJMQBMjRywXq7MQ/cjLYg80Aho1ek0Jm63XMhr9Oc5s ð ∂ ∂ 3qaPer8p1YaX1NTDiCFZWFkvlHf1pQhuxfKBc + mRR9KAbHUefqH + rdjZqjTF7p2m1wJXP8S6k + G2MpHrUe6TYBkJ43GhhTVFMuM3BZajY3VjZWOXBIODRIR1FKZjIiEjMzMzE0MjY0NzM5MTE4NjkxMSoLY2xpZGSSDgSDGAGESGTETqOio6c2RrLWRlbW8vKgoUYWNzOm9zczoqOio6c2RrLWRlbW9KEDExNDg5MzAxMDcyNDY4MThSBTI2ODQyWg9Bc3N1bWVkUm9sZVVzZXJgAGoSMzMzMTQyNjQ3MzkxMTg2OTExcglzZGstZGVt ****
次のコマンドを実行して変更を適用します。
setx OSS_ACCESS_KEY_ID "% OSS_ACCESS_KEY_ID %" setx OSS_ACCESS_KEY_SECRET "% OSS_ACCESS_KEY_SECRET %" setx OSS_SESSION_TOKEN "% OSS_SESSION_TOKEN %"
次のコマンドを実行して、環境変数の設定を確認します。
エコー % OSS_ACCESS_KEY_ID % エコー % OSS_ACCESS_KEY_SECRET % エコー % OSS_SESSION_TOKEN %
サンプル成功応答:
STS.NV5ZCwphFSXqscqUHAKbH **** IrVTNZNy5yQelTETg0cZML3TQn **** CAES + wMIARKAAZhjH0EUOIhJMQBMjRywXq7MQ/cjLYg80Aho1ek0Jm63XMhr9Oc5s ˙∂ ∂ ˙+ + mRR9KAbHUefqH + rdjZqjTF7p2m1wJXP8S6k + ****
環境変数から一時的なアクセス資格情報を取得します。
// 環境変数から取得した一時的なAccessKeyペアとセキュリティトークンを使用します。 EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
埋め込みアクセス資格情報
警告コードにアクセス資格情報を埋め込むと、セキュリティの問題が発生する可能性があります。 漏洩したアクセス資格情報は、攻撃者がリソースにアクセスするために使用することができます。 セキュリティを確保するために、環境変数から一時的なアクセス資格情報を取得するなど、より安全な方法を使用することを推奨します。
// STSから取得した一時的なAccessKeyペアを指定します。 AccessKeyペアは、AccessKey IDとAccessKeyシークレットで構成されます。 文字列accessKeyId = "yourAccessKeyId"; 文字列accessKeySecret = "yourAccessKeySecret"; // STSから取得したセキュリティトークンを指定します。 文字列securityToken = "yourSecurityToken"; // 指定された一時的なAccessKeyペアとセキュリティトークンを使用して、資格情報プロバイダーを作成します。 CredentialsProvider credentialsProvider = new DefaultCredentialProvider(accessKeyId、accessKeySecret、securityToken);
RAMユーザーのRAMロールの設定
RAM ユーザーの AccessKey ペアを取得します。
詳細については、「RAMユーザーのAccessKeyペアの作成」をご参照ください。
重要RAMユーザーのAccessKeyペアが漏洩するリスクを減らすために、3か月以上使用されているAccessKeyペアをローテーションすることを推奨します。 長期間使用されていないRAMユーザーのAccessKeyペアを無効にして削除することを推奨します。
RAMロールのRamRoleArnを取得します。
説明RamRoleArnは、RAMロールのAlibaba Cloudリソース名 (ARN) です。 ARNの形式はacs:ram ::$ accountID:role/$roleNameです。$accountIDはAlibaba CloudアカウントのID、$roleNameはRAMロールの名前です。
詳細については、「RAMロールに関する情報の表示」をご参照ください。
RAMユーザーのAccessKeyペアとRAMロールのARNを一時的なアクセス資格情報として設定します。
環境変数
RAMユーザーのAccessKeyペアとRAMロールのARNの環境変数を設定します。
macOS
ターミナルを開きます。
以下のコマンドを実行します。
nano ~/.bash_profile
RAMユーザーのAccessKeyペアとRAMロールのARNをファイルの最後に追加します。
エクスポートOSS_ACCESS_KEY_ID=LTAI4GDty8ab9W4Y1D **** エクスポートOSS_ACCESS_KEY_SECRET=IrVTNZNy5yQelTETg0cZML3TQn **** export OSS_STS_ROLE_ARN=acs:ram::17464958 ********:role/ossststest
Ctrl
+X
を押し、Y
を押してファイルを保存し、Enter
を押してファイルを閉じます。次のコマンドを実行して変更を適用します。
source /etc/profile
次のコマンドを実行して、環境変数の設定を確認します。
エコー $OSS_ACCESS_KEYID エコー $OSS_ACCESS_KEY_SECRET エコー $OSS_STS_ROLE_ARN
サンプル成功応答:
LTAI4GDty8ab9W4Y1D **** IrVTNZNy5yQelTETg0cZML3TQn **** acs:ram::17464958 *********: role/ossststest
Linux
ターミナルを開きます。
以下のコマンドを実行します。
sudo vim /etc/profile
RAMユーザーのAccessKeyペアとRAMロールのARNをファイルの最後に追加します。
エクスポートOSS_ACCESS_KEY_ID=LTAI4GDty8ab9W4Y1D **** エクスポートOSS_ACCESS_KEY_SECRET=IrVTNZNy5yQelTETg0cZML3TQn **** export OSS_STS_ROLE_ARN=acs:ram::17464958 ********:role/ossststest
[Esc]
を押して編集モードを終了します。 次に、:wq
と入力し、enter
を押してファイルを保存して閉じます。次のコマンドを実行して変更を適用します。
source /etc/profile
次のコマンドを実行して、環境変数の設定を確認します。
エコー $OSS_ACCESS_KEYID エコー $OSS_ACCESS_KEY_SECRET エコー $OSS_STS_ROLE_ARN
サンプル成功応答:
LTAI4GDty8ab9W4Y1D **** IrVTNZNy5yQelTETg0cZML3TQn **** acs:ram::17464958 *********: role/ossststest
Windows
CLIを開きます。
次のコマンドを実行して、RAMユーザーのAccessKeyペアとRAMロールのARNの環境変数を設定します。
セットOSS_ACCESS_KEY_ID=LTAI4GDty8ab9W4Y1D **** セットOSS_ACCESS_KEY_SECRET=IrVTNZNy5yQelTETg0cZML3TQn **** セットOSS_STS_ROLE_ARN=acs:ram::17464958 ********:role/ossststest
次のコマンドを実行して変更を適用します。
setx OSS_ACCESS_KEY_ID "% OSS_ACCESS_KEY_ID %" setx OSS_ACCESS_KEY_SECRET "% OSS_ACCESS_KEY_SECRET %" setx OSS_STS_ROLE_ARN "% OSS_STS_ROLE_ARN %"
次のコマンドを実行して、環境変数の設定を確認します。
エコー % OSS_ACCESS_KEY_ID % エコー % OSS_ACCESS_KEY_SECRET % エコー % OSS_STS_ROLE_ARN %
サンプル成功応答:
LTAI4GDty8ab9W4Y1D **** IrVTNZNy5yQelTETg0cZML3TQn **** acs:ram::17464958 *********: role/ossststest
環境変数からRAMユーザーのAccessKeyペアとRAMロールのARNを取得します。
// STSAssumeRoleにアクセスを許可するリージョンを指定します。 この例では、中国 (杭州) リージョンが指定されています。 文字列region = "cn-hangzhou"; // 環境変数からRAMユーザーのAccessKeyペアを取得します。 AccessKeyペアは、AccessKey IDとAccessKeyシークレットで構成されます。 文字列accessKeyId = System.getenv("OSS_ACCESS_KEY_ID"); 文字列accessKeySecret = System.getenv("OSS_ACCESS_KEY_SECRET"); // 環境変数からRAMロールのARNを取得します。 文字列roleArn = System.getenv("OSS_STS_ROLE_ARN"); // AccessKeyペアとRAMロールARNを使用して、資格情報プロバイダーを作成します。 STSAssumeRoleSessionCredentialsProvider credentialsProvider = CredentialsProviderFactory . newSTSAssumeRoleSessionCredentialsProvider ( region, accessKeyId, accessKeySecret, roleArn );
埋め込みアクセス資格情報
警告コードにアクセス資格情報を埋め込むと、セキュリティの問題が発生する可能性があります。 漏洩したアクセス資格情報は、攻撃者がリソースにアクセスするために使用することができます。 セキュリティを確保するために、環境変数から一時的なアクセス資格情報を取得するなど、より安全な方法を使用することを推奨します。
// STSAssumeRoleロールがアクセスを許可されているリージョンを指定します。 この例では、中国 (杭州) リージョンが指定されています。 文字列region = "cn-hangzhou"; // 環境変数からRAMユーザーのAccessKeyペアを取得します。 AccessKeyペアは、AccessKey IDとAccessKeyシークレットで構成されます。 文字列accessKeyId = System.getenv("OSS_ACCESS_KEY_ID"); 文字列accessKeySecret = System.getenv("OSS_ACCESS_KEY_SECRET"); // RAMロールのARNを指定します。 String roleArn = "acs:ram::17464958 *********: role/ossststest"; // 指定されたAccessKeyペアとRAMロールARNを使用して、資格情報プロバイダーを作成します。 STSAssumeRoleSessionCredentialsProvider credentialsProvider = CredentialsProviderFactory . newSTSAssumeRoleSessionCredentialsProvider ( region, accessKeyId, accessKeySecret, roleArn );
ECS インスタンスの RAM ロールを設定
RAMロールをECSインスタンスにアタッチします。
詳細については、「ECSインスタンスへのインスタンスRAMロールのアタッチ」をご参照ください。
ECSインスタンスのRAMロールを使用して、一時的なアクセス資格情報を設定します。
// ECSインスタンスのRAMロールを使用してアクセス資格情報を取得します。 この例では、ecs-ram-roleロールが使用されています。 InstanceProfileCredentialsProvider credentialsProvider=credentialsProvider. newInstanceProfileCredentialsProvider("ecs-ram-role");
長期アクセス資格情報の使用
OSS SDK for Javaを着実に使用してアプリケーションまたはサービスのOSSリソースにアクセスする場合は、RAMユーザーのAccessKey IDとAccessKeyシークレットで構成される長期アクセス資格情報を提供できます。
RAMユーザーのAccessKeyペアを使用してアクセス資格情報を設定する
RAMユーザーのAccessKeyペアを取得します。
詳細については、「RAMユーザーのAccessKeyペアの作成」をご参照ください。
重要3か月以上使用されているRAMユーザーのAccessKeyペアをローテーションすることを推奨します。 長期間使用されていないRAMユーザーのAccessKeyペアを無効にして削除することを推奨します。 これにより、AccessKeyペアがリークするリスクが軽減されます。
AccessKeyペアを使用してアクセス資格情報を設定します。
環境変数
次のコマンドを実行して環境変数を設定します。
macOS
ターミナルを開きます。
以下のコマンドを実行します。
nano ~/.bash_profile
RAMユーザーのAccessKeyペアをファイルの最後に追加します。
エクスポートOSS_ACCESS_KEY_ID=LTAI4GDty8ab9W4Y1D **** エクスポートOSS_ACCESS_KEY_SECRET=IrVTNZNy5yQelTETg0cZML3TQn ****
Ctrl
+X
を押し、Y
を押してファイルを保存し、Enter
を押してファイルを閉じます。次のコマンドを実行して変更を適用します。
source ~/.bash_profile
次のコマンドを実行して、環境変数の設定を確認します。
エコー $OSS_ACCESS_KEYID エコー $OSS_ACCESS_KEY_SECRET
サンプル成功応答:
LTAI4GDty8ab9W4Y1D **** IrVTNZNy5yQelTETg0cZML3TQn ****
Linux
ターミナルを開きます。
以下のコマンドを実行します。
sudo vim /etc/profile
RAMユーザーのAccessKeyペアをファイルの最後に追加します。
エクスポートOSS_ACCESS_KEY_ID=LTAI4GDty8ab9W4Y1D **** エクスポートOSS_ACCESS_KEY_SECRET=IrVTNZNy5yQelTETg0cZML3TQn ****
[Esc]
を押して編集モードを終了します。 次に、:wq
と入力し、enter
を押してファイルを保存して閉じます。次のコマンドを実行して変更を適用します。
source /etc/profile
次のコマンドを実行して、環境変数の設定を確認します。
エコー $OSS_ACCESS_KEYID エコー $OSS_ACCESS_KEY_SECRET
サンプル成功応答:
LTAI4GDty8ab9W4Y1D **** IrVTNZNy5yQelTETg0cZML3TQn ****
Windows
CLIを開きます。
次のコマンドを実行して、AccessKeyペアの環境変数を設定します。
セットOSS_ACCESS_KEY_ID=LTAI4GDty8ab9W4Y1D **** set OSS_ACCESS_KEY_SECRET=IrVTNZNy5yQelTETg0cZML3TQn ****
次のコマンドを実行して変更を適用します。
setx OSS_ACCESS_KEY_ID "% OSS_ACCESS_KEY_ID %" setx OSS_ACCESS_KEY_SECRET "% OSS_ACCESS_KEY_SECRET %"
次のコマンドを実行して、環境変数の設定を確認します。
エコー % OSS_ACCESS_KEY_ID % エコー % OSS_ACCESS_KEY_SECRET %
サンプル成功応答:
LTAI4GDty8ab9W4Y1D **** IrVTNZNy5yQelTETg0cZML3TQn ****
環境変数からRAMユーザーのAccessKeyペアを取得します。
// 環境変数からアクセス資格情報を取得します。 EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
埋め込みアクセス資格情報
警告コードにアクセス資格情報を埋め込むと、セキュリティの問題が発生する可能性があります。 漏洩したアクセス資格情報は、攻撃者がリソースにアクセスするために使用することができます。 セキュリティを確保するために、環境変数から一時的なアクセス資格情報を取得するなど、より安全な方法を使用することを推奨します。
// 環境変数からRAMユーザーのAccessKeyペアを取得します。 AccessKeyペアは、AccessKey IDとAccessKeyシークレットで構成されます。 文字列accessKeyId = System.getenv("OSS_ACCESS_KEY_ID"); 文字列accessKeySecret = System.getenv("OSS_ACCESS_KEY_SECRET"); // RAMユーザーのAccessKeyペアを使用して、資格情報プロバイダーを作成します。 CredentialsProvider credentialsProvider = new DefaultCredentialProvider(accessKeyId、accessKeySecret);
OIDCアクセス資格情報
OIDCロールベースSSOの詳細については、「概要」をご参照ください。
アプリケーションまたはサービスでOIDCアクセス資格情報を使用してOSSにアクセスする場合は、次の手順を使用して最初にOIDCアクセス資格情報を設定します。
alibabacloud_credentials依存関係を追加します。
<dependency> <groupId>com.aliyun</groupId> <artifactId> 資格情報-java</artifactId> <version> 最新 </version> </dependency>
OIDC IdPとOIDC IdPのRAMロールを作成します。 詳細については、「信頼できるIdPのRAMロールの作成」および「RAMロールへの権限の付与」をご参照ください。
RAMロールを使用して、アクセス資格情報を提供します。 次のサンプルコードは、OIDCアクセス資格情報を使用してOSSにアクセスするために使用できるOSSClientインスタンスを作成します。
com.aliyun.oss.OSSをインポートします。com.aliyun.oss.OSSClientBuilderをインポートします。impor t com.aliyun.oss.com mon.auth.Credentials; impor t com.aliyun.oss.com mon.auth.CredentialsProvider; impor t com.aliyun.oss.com mon.auth.DefaultCredentials; com.aliyun.oss.mo del.AccessControlListをインポートします。パブリッククラスOIDCRoleArnCredentialDemo { public static void main(String[] args) throws Exception { // この例では、中国 (杭州) リージョンのエンドポイントが使用されます。 実際のエンドポイントを指定します。 String endpoint = "https://oss-cn-hangzhou.aliyuncs.com"; com.aliyun.credentials.mo dels.Config config = new com.aliyun.credentials.mo dels.Config(); // 資格情報の種類を指定します。 資格情報の種類をoidc_role_arnに設定します。 config.setType("oidc_role_arn"); // RAMロールのARNを指定します。 config.setRoleArn(System.getenv("ALIBABA_CLOUD_ROLE_ARN")); // OIDC IdPのARNを指定します。 config.setOidcProviderArn(System.getenv("ALIBABA_CLOUD_OIDC_PROVIDER_ARN")); // OIDCトークンのファイルパスを指定します。 config.setOidcTokenFilePath(System.getenv("ALIBABA_CLOUD_OIDC_TOKEN_FILE")); // 役割セッションの名前を指定します。 config.setRoleSessionName("<RoleSessionName>"); // (オプション) RAMロールの制限付き権限を指定します。 例: {"Statement": [{"Action": ["*"]] 、"Effect": "Allow" 、"Resource": ["*"]}] 、"Version": "1"} 。 config.setPolicy("<Policy>"); // (オプション) RAMロールの外部IDを指定します。 // 外部IDは、プロキシの混乱を避けるためにプロバイダーによって提供されます。 config.setExternalId("<ExternalId>"); // セッションの有効期間を指定します。 config.setRoleSessionExpiration(3600); com.aliyun.credentials.Client credentialsClient = new com.aliyun.credentials.Client(config); CredentialsProvider credsProvider = new OIDCRoleArnCredentialDemo.CredentialProviderWrapper(credentialsClient); // Create an OSSClient instance. OSS ossClient = new OSSClientBuilder().build(endpoint, credsProvider); } プライベート静的クラスCredentialProviderWrapperがCredentialsProviderを実装 { private com.aliyun.credentials.Clientクライアント; public CredentialProviderWrapper(com.aliyun.credentials.Client client) { this.client = client; } @オーバーライド public void setCredentials (資格情報) { } public Credentials getCredentials() { 文字列ak = client.getAccessKeyId(); 文字列sk = client.getAccessKeySecret(); String token = client.getSecurityToken(); 新しいDefaultCredentials(ak、sk、token) を返します。 } } }
次に何をすべきか
アクセス資格情報を設定した後、OSSClientインスタンスを初期化できます。 詳細については、「初期化」をご参照ください。