PHP 向け Tablestore SDK を使用してリクエストを開始するには、アクセス認証情報を構成する必要があります。Alibaba Cloud サービスは、アクセス認証情報を使用して ID 情報とアクセス許可を確認します。認証と承認の要件に基づいて、さまざまな種類のアクセス認証情報を選択できます。
前提条件
Tablestore SDK for PHP がインストールされていること。詳細については、PHP 向け Tablestore SDK のインストールを参照してください。
アクセス認証情報
アクセス認証情報の種類
一時的なアクセス認証情報: セキュリティの高いシナリオでは、一時的なアクセス認証情報を使用することをお勧めします。一時的なアクセス認証情報は、特定の期間内のみ有効であるため、認証情報の漏洩を防ぐのに役立ちます。一時的なアクセス認証情報は、きめ細かいアクセス制御もサポートしているため、過剰な権限によるセキュリティリスクを防ぎます。
長期アクセス認証情報: セキュリティを確保するため、長期アクセス認証情報は使用しないことをお勧めします。利便性を重視するシナリオでは、長期アクセス認証情報を使用することで、長期間にわたる複数回の更新が不要になります。
重要Alibaba Cloud アカウントのセキュリティを確保するため、長期アクセス認証情報は 3 か月ごとに変更することをお勧めします。
長期アクセス認証情報が漏洩した場合、または使用されなくなった場合は、長期アクセス認証情報を削除または無効にして、セキュリティリスクを軽減できます。
一時的なアクセス認証情報の構成
SDK for PHP を使用して Tablestore に一時的にアクセスする場合は、Security Token Service (STS) を使用して一時的なアクセス認証情報を生成できます。一時的なアクセス認証情報を使用する場合、Resource Access Management (RAM) ユーザーの AccessKey ペアを公開する必要はありません。これにより、Tablestore への安全なアクセスが保証されます。
RAM ユーザーを作成します。詳細については、「STS から取得した一時的なアクセス認証情報を使用してリクエストを開始する」トピックの手順 1: RAM ユーザーを作成するセクションを参照してください。
AliyunSTSAssumeRoleAccess
ポリシーを RAM ユーザーにアタッチします。詳細については、「STS から取得した一時的なアクセス認証情報を使用してリクエストを開始する」トピックの手順 2: RAM ユーザーに AssumeRole オペレーションを呼び出す権限を付与するセクションを参照してください。RAM ロールを作成し、カスタムポリシーを RAM ロールにアタッチします。詳細については、「STS から取得した一時的なアクセス認証情報を使用してリクエストを開始する」トピックの手順 3: RAM ロールを作成するセクションと手順 4: RAM ロールに Tablestore の読み取り専用アクセス権を付与するセクションを参照してください。
RAM ユーザーとして RAM ロールを引き受けて、STS から一時的なアクセス認証情報を取得します。詳細については、「STS から取得した一時的なアクセス認証情報を使用してリクエストを開始する」トピックの手順 5: RAM ユーザーを使用して RAM ロールを引き受けて一時的なアクセス認証情報を取得するセクションを参照してください。
STS から取得した一時的なアクセス認証情報を構成します。
環境変数
一時的なアクセス認証情報を使用して環境変数を指定します。
Mac OS X、Linux、および Unix
export OTS_AK_ENV=<OTS_AK_ENV> export OTS_SK_ENV=<OTS_SK_ENV> export OTS_SESSION_TOKEN=<OTS_SESSION_TOKEN>
Windows
コマンドプロンプトを開き、管理者として次のコマンドを実行します。
setx OTS_AK_ENV <OTS_AK_ENV> /m setx OTS_SK_ENV <OTS_SK_ENV> /m setx OTS_SESSION_TOKEN <OTS_SESSION_TOKEN> /m
説明環境変数を指定した後、新しい設定が想定どおりに適用されるように、統合開発環境 (IDE) などの関連サービスまたは開発ツールを再起動する必要がある場合があります。
一時的なアクセス認証情報を渡す環境変数を指定します。
$accessKeyId = getenv('OTS_AK_ENV'); $accessKeySecret = getenv('OTS_SK_ENV'); $securityToken = getenv('OTS_SESSION_TOKEN');
静的認証情報
コード内で変数を指定することで、認証情報を参照できます。ランタイム環境では、変数は環境変数、構成ファイル、またはその他の外部データソースからの実際の認証情報値によって渡されます。
次の手順では、構成ファイルを使用して認証情報を渡す方法について説明します。
config.ini
という名前の構成ファイルを作成します。[configName] OTS_AK_ENV = <OTS_AK_ENV> OTS_SK_ENV = <OTS_SK_ENV> OTS_SESSION_TOKEN = <OTS_SESSION_TOKEN>
構成ファイルを使用して認証情報を渡します。
try { // 構成ファイルを読み取ります。この例では、構成ファイルはスクリプトと同じディレクトリに保存されています。 $config = parse_ini_file('config.ini'); // AccessKey ペアと STS トークンを取得します。 $accessKeyId = $config['OTS_AK_ENV']; $accessKeySecret = $config['OTS_SK_ENV']; $securityToken = $config['OTS_SESSION_TOKEN']; }catch (Exception $e) { printf($e->getMessage() . "\n"); return; }
長期アクセス認証情報の構成
アプリケーションが外部攻撃を受けにくい安全で安定した環境にデプロイされており、Tablestore への長期アクセスが必要な場合は、Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey ペアを使用できます。AccessKey ペアの取得方法の詳細については、RAM ユーザーの AccessKey ペアを使用してリクエストを開始するを参照してください。
Alibaba Cloud アカウントは、アカウント内のリソースに対するすべての権限を持っています。Alibaba Cloud アカウントの AccessKey ペアの漏洩は、システムにとって重大な脅威となります。そのため、最小限の権限の原則に基づいて権限が付与された RAM ユーザーの AccessKey ペアを使用することをお勧めします。
環境変数
AccessKey ペアを使用して環境変数を指定します。
Mac OS X、Linux、および Unix
export OTS_AK_ENV=<OTS_AK_ENV> export OTS_SK_ENV=<OTS_SK_ENV>
Windows
コマンドプロンプトを開き、管理者として次のコマンドを実行します。
setx OTS_AK_ENV <OTS_AK_ENV> /m setx OTS_SK_ENV <OTS_SK_ENV> /m
説明環境変数を指定した後、新しい設定が想定どおりに適用されるように、IDE などの関連サービスまたは開発ツールを再起動する必要がある場合があります。
環境変数を使用して認証情報を渡します。
$accessKeyId = getenv('OTS_AK_ENV'); $accessKeySecret = getenv('OTS_SK_ENV');
静的認証情報
コード内で変数を指定することで、認証情報を参照できます。ランタイム環境では、変数は環境変数、構成ファイル、またはその他の外部データソースからの実際の認証情報値によって渡されます。
次の手順では、構成ファイルを使用して認証情報を渡す方法について説明します。
config.ini
という名前の構成ファイルを作成します。[configName] OTS_AK_ENV = <OTS_AK_ENV> OTS_SK_ENV = <OTS_SK_ENV>
構成ファイルを使用して認証情報を渡します。
try { // 構成ファイルを読み取ります。この例では、構成ファイルはスクリプトと同じディレクトリに保存されています。 $config = parse_ini_file('config.ini'); // AccessKey ID と AccessKey シークレットを取得します。 $accessKeyId = $config['OTS_AK_ENV']; $accessKeySecret = $config['OTS_SK_ENV']; }catch (Exception $e) { printf($e->getMessage() . "\n"); return; }
次の手順
認証情報プロバイダーを初期化したら、認証情報プロバイダーを使用して OTSClient インスタンスを作成する必要があります。詳細については、OTSClient インスタンスの初期化を参照してください。