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

OpenAPI Explorer:認証情報セキュリティソリューション

最終更新日:Sep 26, 2026

Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey ペアや STS トークンが漏洩すると、クラウドリソースやビジネスにセキュリティリスクが生じる可能性があります。以下のプラクティスに従って認証情報を保護し、不正アクセスを防止してください。

Alibaba Cloud では、AccessKey ペアと Security Token Service (STS) トークンの 2 種類の認証情報を使用します。詳細については、「認証情報」をご参照ください。

よくある間違い

  • コードに AccessKey ペアをハードコーディングすると、リポジトリにアクセスできるすべてのユーザーに漏洩する可能性があります。このようなコードをオープンソースプラットフォームやホスティングサービスに公開すると、リスクが増大します。

  • クライアント側のコードに AccessKey ペアを埋め込むと、攻撃者が逆コンパイルによって抽出される可能性があります。

  • 共有ドキュメントや資料によって AccessKey ペアが漏洩する可能性があります。

  • ドキュメント内のサンプルコードによって AccessKey ペアが漏洩する可能性があります。

  • API のレスポンスによって、意図した管理範囲を超えて AccessKey ペアが漏洩する可能性があります。

セキュリティソリューション

開発中に認証情報を転送したり、ハードコーディングしたりしないでください。

Alibaba Cloud アカウント AccessKey ペアの使用回避

Alibaba Cloud アカウントはすべてのリソースに対する完全な権限を持っているため、AccessKey ペアが漏洩すると重大なリスクが生じます。Alibaba Cloud アカウントの AccessKey ペアを直接使用しないでください。

コードへの認証情報のハードコーディング回避

認証情報は環境変数に保存します。次の例では、ALIBABA_CLOUD_ACCESS_KEY_ID と ALIBABA_CLOUD_ACCESS_KEY_SECRET を使用します。詳細については、「Linux、macOS、Windows での環境変数の設定」をご参照ください。

サンプルコード:

public static com.aliyun.ecs20140526.Client createClient() throws Exception {
  com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
    .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
    .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
  config.endpoint = "ecs.cn-shanghai.aliyuncs.com";
  return new com.aliyun.ecs20140526.Client(config);
}

KMS を使用した認証情報管理

Key Management Service (KMS) は、認証情報を安全に管理します。詳細については、「シークレット管理」をご参照ください。KMS の Secrets Manager は、スケジュールまたはオンデマンドで RAM シークレットをローテーションします。RAM シークレット プラグインをインストールすると、アプリケーションは現在の AccessKey ペアを動的に取得します。詳細については、「RAM シークレットの管理と使用」をご参照ください。

インスタンス RAM ロールの使用

インスタンス RAM ロールを Elastic Compute Service (ECS) インスタンス、Elastic Container Instance、または Container Service for Kubernetes (ACK) のワーカーノードにアタッチします。ECS メタデータ サーバーは STS トークンを提供するため、AccessKey ペアのハードコーディングが不要になります。詳細については、「インスタンス RAM ロール」、「API 操作によるインスタンス RAM ロールの使用」、および「ECI Pod への RAM ロールの割り当て」をご参照ください。

RRSA 機能の使用

ACK では、1 つのワーカーノードが複数のサービスの Pod をホストする場合があります。どの Pod も ECS メタデータ サーバーにアクセスして、ワーカーノードの RAM ロールの STS トークンを取得できるため、権限の漏洩につながる可能性があります。RAM Roles for Service Accounts (RRSA) は、OpenID Connect (OIDC) 情報を環境変数にインジェクトすることで、Pod レベルのアクセス制御を提供します。Alibaba Cloud Credentials ツールを使用して STS トークンを取得します。詳細については、「RRSA を使用した Pod レベルのアクセス制御」をご参照ください。

Alibaba Cloud Credentials ツールの使用

Alibaba Cloud Credentials ツールは、認証情報のハードコーディングを不要にするデフォルトの認証情報プロバイダーチェーンを提供します。詳細については、「認証情報の管理」をご参照ください。

Security Center による AccessKey 漏洩の検知

Security Center は、GitHub 上で公開された Alibaba Cloud アカウントおよび RAM ユーザーの AccessKey ペアをリアルタイムで監視し、検知時にアラートを送信します。漏洩イベントには直ちに対処してください。詳細については、「AccessKey ペアの漏洩検知」をご参照ください。

AccessKey ペア漏洩への対処

AccessKey ペアの漏洩

  1. AccessKey ペアの無効化または削除

    漏洩した AccessKey ペアを直ちに無効化または削除し、代替のキーを作成してください。詳細については、「RAM ユーザーのアクセスキーの無効化」および「RAM ユーザーの AccessKey の削除」をご参照ください。

  2. AccessKey ペアのイベントの照会

    ActionTrail の AccessKey ペア監査機能を使用して、アクセスされたサービス、IP アドレス、リソースなどの AccessKey ペアの詳細を照会します。これにより、使用状況を追跡し、漏洩を特定できます。

STS トークンの漏洩

STS トークンの有効期間は 15 分から 12 時間です。この期間内であっても、トークンが漏洩すると深刻なセキュリティリスクが生じます。漏洩した STS トークンを無効化するには、次の手順を実行します。

  1. RAM コンソールにログインします。

  2. RAM ロールからすべてのポリシーをデタッチします。

    詳細については、「RAM ロールからの権限の取り消し」をご参照ください。

  3. または、RAM ロールを完全に削除します。

    詳細については、「RAM ロールの削除」をご参照ください。

    この操作により、そのロールの有効期限が切れていないすべての STS トークンが直ちに無効になります。

その後、ロールの使用を再開するには、同じ名前とポリシーで新しいロールを作成します。

関連ドキュメント

関連トピック: