Node.js 用 Tablestore SDK を使用して Tablestore にアクセスするためのリクエストを開始する前に、アクセス資格情報を構成する必要があります。Alibaba Cloud サービスは、アクセス資格情報を使用して ID 情報とアクセス権限を確認します。ビジネスシナリオでの認証と承認の要件に基づいて、さまざまな種類のアクセス資格情報を構成できます。
前提条件
Tablestore SDK for Node.js がインストールされています。詳細については、「Tablestore SDK for Node.js をインストールする」をご参照ください。
アクセス資格情報
アクセス資格情報の種類
一時的なアクセス資格情報: セキュリティの高いシナリオでは、一時的なアクセス資格情報を使用することをお勧めします。一時的なアクセス資格情報は、特定の期間内のみ有効であるため、資格情報の漏洩を防ぐのに役立ちます。一時的なアクセス資格情報は、きめ細かいアクセスコントロールをサポートしており、過剰な権限によるセキュリティリスクを防ぎます。
長期アクセス資格情報: セキュリティを確保するために、長期アクセス資格情報を使用しないことをお勧めします。利便性が重要なシナリオでは、長期アクセス資格情報を使用することで、長期間にわたる複数回の更新が不要になります。
重要アカウントのセキュリティを確保するために、3か月ごとに長期アクセス資格情報を変更することをお勧めします。
長期アクセス資格情報が漏洩した場合、または使用されなくなった場合は、セキュリティリスクを軽減するために、できるだけ早く長期アクセス資格情報を削除または無効にする必要があります。
一時的なアクセス資格情報
Tablestore SDK for Node.js を使用して一時的に Tablestore にアクセスするには、セキュリティトークンサービス(STS)から一時的なアクセス資格情報を取得する必要があります。一時的なアクセス資格情報を使用して Tablestore にアクセスする場合、RAM ユーザーの AccessKey ペアは漏洩しないため、アクセスセキュリティが確保されます。
RAM ユーザーを作成します。RAM ユーザーの作成方法については、「RAM ユーザーを作成する」をご参照ください。
AliyunSTSAssumeRoleAccessポリシーを RAM ユーザーにアタッチします。詳細については、「RAM ユーザーに AssumeRole オペレーションを呼び出す権限を付与する」をご参照ください。RAM ロールを作成し、カスタムポリシーを RAM ロールにアタッチします。詳細については、「RAM ロールを作成する」および「RAM ロールに Tablestore の読み取り専用アクセス権を付与する」をご参照ください。
RAM ユーザーを使用して AssumeRole オペレーションを呼び出し、一時的なアクセス資格情報を取得します。詳細については、「RAM ユーザーを使用して RAM ロールを引き受け、一時的なアクセス資格情報を取得する」をご参照ください。
一時的なアクセス資格情報の環境変数を構成します。
一時的なアクセス資格情報を使用して環境変数を指定します。
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_tokenWindows
[コマンドプロンプト] を管理者として実行し、次のコマンドを実行します。
# 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)などの関連サービスまたは開発ツールを再起動する必要がある場合があります。
環境変数を使用して資格情報を渡します。
var accessKeyId = process.env.TABLESTORE_ACCESS_KEY_ID; var secretAccessKey = process.env.TABLESTORE_ACCESS_KEY_SECRET; var stsToken = process.env.TABLESTORE_SESSION_TOKEN;
長期アクセス資格情報
アプリケーションが外部攻撃を受けにくい安全で安定した環境にデプロイされており、Tablestore SDK for Node.js を使用して Tablestore に長期的にアクセスする必要がある場合は、Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey ペアを使用して Tablestore にアクセスできます。AccessKey ペアの取得方法については、「RAM ユーザーの AccessKey ペアを使用して Tablestore にアクセスする」をご参照ください。
Alibaba Cloud アカウントは、アカウントのすべてのリソースへのフルアクセス権を持っています。Alibaba Cloud アカウントの AccessKey ペアの漏洩は、システムにとって重大な脅威となります。そのため、Tablestore にアクセスするために必要な最小限の権限が付与された RAM ユーザーの AccessKey ペアを使用することをお勧めします。
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_secretWindows
[コマンドプロンプト] を管理者として実行し、次のコマンドを実行します。
# AccessKey ID を指定します。 setx TABLESTORE_ACCESS_KEY_ID your_access_key_id /m # AccessKey シークレットを指定します。 setx TABLESTORE_ACCESS_KEY_SECRET your_access_key_secret /m説明環境変数を構成した後、新しい設定が想定どおりに適用されるように、IDE などの関連サービスまたは開発ツールを再起動する必要がある場合があります。
環境変数を使用して資格情報を渡します。
var accessKeyId = process.env.TABLESTORE_ACCESS_KEY_ID; var secretAccessKey = process.env.TABLESTORE_ACCESS_KEY_SECRET;
次の手順
資格情報プロバイダーを初期化したら、資格情報プロバイダーを使用して OTSClient インスタンスを作成する必要があります。詳細については、「Tablestore クライアントを初期化する」をご参照ください。