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

:アクセス資格情報の構成

最終更新日:Mar 18, 2025

Python 向け Tablestore SDK を使用して Tablestore にアクセスするリクエストを開始するには、アクセス資格情報を構成する必要があります。Alibaba Cloud サービスは、アクセス資格情報を使用して ID 情報とアクセス権限を確認します。ビジネスシナリオでの認証と承認の要件に基づいて、さまざまな種類のアクセス資格情報を構成できます。

前提条件

Tablestore SDK for Python がインストールされていること。詳細については、「Python 向け Tablestore SDK をインストールする」をご参照ください。

アクセス資格情報

アクセス資格情報の種類

  • 一時的なアクセス資格情報: セキュリティの高いシナリオでは、一時的なアクセス資格情報を使用することをお勧めします。一時的なアクセス資格情報は、特定の期間内にのみ有効であるため、資格情報の漏洩を防ぐのに役立ちます。一時的なアクセス資格情報は、きめ細かいアクセス制御をサポートしており、過剰な権限によるセキュリティリスクを防ぎます。

  • 長期的なアクセス資格情報: セキュリティを確保するために、長期的なアクセス資格情報を使用しないことをお勧めします。利便性が不可欠なシナリオでは、長期的なアクセス資格情報を使用することで、長期間にわたって何度も更新する必要がなくなります。

    重要
    • アカウントのセキュリティを確保するために、長期的なアクセス資格情報を 3 か月ごとに変更することをお勧めします。

    • 長期的なアクセス資格情報が漏洩した場合、または使用されなくなった場合は、セキュリティリスクを軽減するために、できるだけ早く長期的なアクセス資格情報を削除または無効にする必要があります。

一時的なアクセス資格情報の構成

Python 向け Tablestore SDK を使用して一時的に Tablestore にアクセスする場合は、次のいずれかの方法を選択して一時的なアクセス資格情報を構成できます。

STS を使用する

特定の期間内にのみ Tablestore にアクセスする場合は、Security Token Service (STS) を使用して一時的なアクセス資格情報を生成できます。一時的なアクセス資格情報を使用する場合、Resource Access Management (RAM) ユーザーの AccessKey ペアを開示する必要はありません。これにより、Tablestore への安全なアクセスが保証されます。

  1. RAM ユーザーを作成します。詳細については、「RAM ユーザーを作成する」をご参照ください。

  2. AliyunSTSAssumeRoleAccess ポリシーを RAM ユーザーにアタッチします。詳細については、「RAM ユーザーに AssumeRole 権限を付与する」をご参照ください。

  3. RAM ロールを作成し、カスタムポリシーを RAM ロールにアタッチします。詳細については、「RAM ロールの作成」および「RAM ロールに Tablestore へのアクセス権限を付与する」をご参照ください。

  4. RAM ユーザーとして RAM ロールを引き受けて、STS から一時的なアクセス資格情報を取得します。詳細については、「RAM ユーザーとして RAM ロールを引き受けて、STS から一時的なアクセス資格情報を取得する」をご参照ください。

  5. 一時的なアクセス資格情報の環境変数を構成します。

    環境変数
    1. 一時的なアクセス資格情報の環境変数を構成します。

      Mac OS X/Linux/UNIX
      # STS から取得した一時的な AccessKey ID を指定します。
      export TABLESTORE_ACCESS_KEY_ID=your_sts_access_key_id
      # STS から取得した一時的な AccessKey シークレットを指定します。
      export TABLESTORE_ACCESS_KEY_SECRET=your_sts_access_key_secret
      # STS から取得したセキュリティトークンを指定します。
      export TABLESTORE_SESSION_TOKEN=your_sts_token
      Windows

      [コマンドプロンプト] を管理者として実行し、次のコマンドを実行します。

      # STS から取得した一時的な AccessKey ID を指定します。
      setx TABLESTORE_ACCESS_KEY_ID your_sts_access_key_id /m
      # STS から取得した一時的な AccessKey シークレットを指定します。
      setx TABLESTORE_ACCESS_KEY_SECRET your_sts_access_key_secret /m
      # STS から取得したセキュリティトークンを指定します。
      setx TABLESTORE_SESSION_TOKEN your_sts_token /m
      説明

      環境変数を指定した後、新しい設定が想定どおりに適用されるように、統合開発環境 (IDE) などの関連サービスまたは開発ツールを再起動する必要がある場合があります。

    2. 一時的なアクセス資格情報を渡す環境変数を指定します。

      # -*- coding: utf-8 -*-
      import os
      
      access_key_id = os.getenv("TABLESTORE_ACCESS_KEY_ID")
      access_key_secret = os.getenv("TABLESTORE_ACCESS_KEY_SECRET")
      sts_token = os.getenv("TABLESTORE_SESSION_TOKEN")
    静的資格情報

    コード内で変数を使用してアクセス資格情報を定義できます。コードの実行中に、これらの変数には、環境変数、構成ファイル、またはその他の外部データソースから取得された実際の資格情報の値が設定されます。

    次の手順では、構成ファイルを使用して資格情報を渡す方法について説明します。

    1. config.ini という名前の構成ファイルを作成します。

      [configName]
      TABLESTORE_ACCESS_KEY_ID = your_sts_access_key_id
      TABLESTORE_ACCESS_KEY_SECRET = your_sts_access_key_secret
      TABLESTORE_SESSION_TOKEN = your_sts_token
    2. 構成ファイルを使用して資格情報を渡します。

      # -*- coding: utf-8 -*-
      import configparser
      
      # 構成ファイルを読み取ります。
      config = configparser.ConfigParser()
      # たとえば、config.ini 構成ファイルはスクリプトと同じディレクトリに保存されます。
      config.read('config.ini')
      
      # 構成ファイルから AccessKey ID と AccessKey シークレットを取得します。
      access_key_id = config.get('configName', 'TABLESTORE_ACCESS_KEY_ID')
      access_key_secret = config.get('configName', 'TABLESTORE_ACCESS_KEY_SECRET')
      security_token = config.get('configName', 'TABLESTORE_SESSION_TOKEN')

Function Compute のコンテキストで Credentials パラメーターを使用する

アプリケーションの関数が Function Compute にデプロイされて実行されている場合は、Function Compute のコンテキストで Credentials パラメーターを使用して一時的なアクセス資格情報を取得できます。

このメソッドの基本的なロジックは、STS トークンを使用してアクセス資格情報を構成することです。Function Compute は、関数に構成されているロールに基づいてサービスロールを引き受けることで STS トークンを取得します。次に、STS トークンは、Function Compute のコンテキストで Credentials パラメーターを使用してアプリケーションに渡されます。STS トークンは 36 時間有効です。有効期間を変更することはできません。関数の最大実行時間は 24 時間です。したがって、関数が実行されているときに STS トークンの有効期限が切れないため、STS トークンを更新する必要はありません。このメソッドでは AccessKey ペアまたは STS トークンが不要なため、これらの資格情報を手動で管理することに伴うリスクがなくなります。Function Compute に Tablestore へのアクセス権限を付与する方法については、「Function Compute に他の Alibaba Cloud サービスへのアクセス権限を付与する」をご参照ください。

  1. Function Compute のコンテキストで Credentials パラメーターを使用して、一時的なアクセス資格情報を取得します。

    # -*- coding: utf-8 -*-
    
    def handler(event, context):
        # キー情報を取得します。関数を実行する前に、関数が属するサービスにロールが構成されており、そのロールに Tablestore へのアクセス権限が付与されていることを確認してください。AliyunFCDefaultRole ロールの使用をお勧めします。
        creds = context.credentials
    
        access_key_id = creds.access_key_id
        access_key_secret = creds.access_key_secret
        security_token = creds.security_token
    
        # 後続の操作を実行します。
    
        return 'success'

長期的なアクセス資格情報の構成

アプリケーションが外部攻撃を受けやすい環境ではなく、安全で安定した環境にデプロイされており、Python 向け Tablestore SDK を使用して Tablestore に長期間アクセスする必要がある場合は、Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey ペアを使用できます。AccessKey ペアを取得する方法については、「RAM ユーザーの AccessKey ペアを使用して Tablestore にアクセスする」をご参照ください。

警告

Alibaba Cloud アカウントは、アカウント内のリソースに対するすべての権限を持っています。Alibaba Cloud アカウントの AccessKey ペアの漏洩は、重大なセキュリティ上の脅威となります。したがって、最小権限の原則に基づいて権限が付与されている RAM ユーザーの AccessKey ペアを使用することをお勧めします。

環境変数

  1. AccessKey ペアを使用して環境変数を指定します。

    Mac OS X/Linux/UNIX
    # AccessKey ID を指定します。
    export TABLESTORE_ACCESS_KEY_ID=your_access_key_id
    # AccessKey シークレットを指定します。
    export TABLESTORE_ACCESS_KEY_SECRET=your_access_key_secret
    Windows

    [コマンドプロンプト] を管理者として実行し、次のコマンドを実行します。

    # AccessKey ID を指定します。
    setx TABLESTORE_ACCESS_KEY_ID your_access_key_id /m
    # AccessKey シークレットを指定します。
    setx TABLESTORE_ACCESS_KEY_SECRET your_access_key_secret /m
    説明

    環境変数を指定した後、新しい設定が想定どおりに適用されるように、IDE などの関連サービスまたは開発ツールを再起動する必要がある場合があります。

  2. 環境変数を使用して資格情報を渡します。

    # -*- coding: utf-8 -*-
    import os
    
    access_key_id = os.getenv("TABLESTORE_ACCESS_KEY_ID")
    access_key_secret = os.getenv("TABLESTORE_ACCESS_KEY_SECRET")

静的資格情報

コード内で変数を使用してアクセス資格情報を定義できます。コードの実行中に、これらの変数には、環境変数、構成ファイル、またはその他の外部データソースから取得された実際の資格情報の値が設定されます。

次の手順では、構成ファイルを使用して資格情報を渡す方法について説明します。

  1. config.ini という名前の構成ファイルを作成します。

    [configName]
    TABLESTORE_ACCESS_KEY_ID = your_access_key_id
    TABLESTORE_ACCESS_KEY_SECRET = your_access_key_secret
  2. 構成ファイルを使用して資格情報を渡します。

    # -*- coding: utf-8 -*-
    import configparser
    
    # 構成ファイルを読み取ります。
    config = configparser.ConfigParser()
    # たとえば、config.ini 構成ファイルはスクリプトと同じディレクトリに保存されます。
    config.read('config.ini')
    
    # 構成ファイルから AccessKey ID と AccessKey シークレットを取得します。
    access_key_id = config.get('configName', 'TABLESTORE_ACCESS_KEY_ID')
    access_key_secret = config.get('configName', 'TABLESTORE_ACCESS_KEY_SECRET')

次の手順

資格情報プロバイダーを初期化したら、資格情報プロバイダーを使用して OTSClient インスタンスを作成する必要があります。詳細については、「Tablestore クライアントを初期化する」をご参照ください。