Tablestore SDK for Go を使用して Tablestore にアクセスするリクエストを開始するには、アクセス資格情報を構成する必要があります。Alibaba Cloud サービスは、アクセス資格情報を使用して ID 情報とアクセス権限を確認します。ビジネスシナリオでの認証と承認の要件に基づいて、さまざまなタイプのアクセス資格情報を構成できます。
前提条件
Tablestore SDK for Go がインストールされていること。詳細については、「Tablestore SDK for Go をインストールする」をご参照ください。
アクセス資格情報
アクセス資格情報のタイプ
一時的なアクセス資格情報: セキュリティの高いシナリオでは、一時的なアクセス資格情報を使用することをお勧めします。一時的なアクセス資格情報は、特定の期間内のみ有効であるため、資格情報の漏洩を防ぐのに役立ちます。一時的なアクセス資格情報は、きめ細かいアクセスコントロールをサポートしており、過剰な権限によるセキュリティリスクを防ぎます。
長期的なアクセス資格情報: セキュリティを確保するために、長期的なアクセス資格情報を使用しないことをお勧めします。利便性が不可欠なシナリオでは、長期的なアクセス資格情報を使用することで、長期間にわたる複数回の更新が不要になります。
重要アカウントのセキュリティを確保するために、長期的なアクセス資格情報を 3 か月ごとに変更することをお勧めします。
長期的なアクセス資格情報が漏洩した場合、または使用されなくなった場合は、セキュリティリスクを軽減するために、できるだけ早く長期的なアクセス資格情報を削除または無効にする必要があります。
一時的なアクセス資格情報の構成
Tablestore SDK for Go を使用して一時的に Tablestore にアクセスする場合は、セキュリティトークンサービス (STS) を使用して一時的なアクセス資格情報を生成できます。一時的なアクセス資格情報を使用する場合、Resource Access Management (RAM) ユーザーの AccessKey ペアを開示する必要はありません。これにより、Tablestore への安全なアクセスが保証されます。
RAM ユーザーを作成します。詳細については、「RAM ユーザーを作成する」をご参照ください。
AliyunSTSAssumeRoleAccessポリシーを RAM ユーザーにアタッチします。詳細については、「RAM ユーザーに AssumeRole 権限を付与する」をご参照ください。RAM ロールを作成し、カスタムポリシーを RAM ロールにアタッチします。詳細については、「RAM ロールを作成する」および「RAM ロールに Tablestore へのアクセス権限を付与する」をご参照ください。
RAM ユーザーとして AssumeRole 操作を呼び出して、一時的なアクセス資格情報を取得します。詳細については、「RAM ユーザーとして RAM ロールを引き受けて STS から一時的なアクセス資格情報を取得する」をご参照ください。
STS の一時的なアクセス資格情報を構成します。
環境変数
一時的なアクセス資格情報の環境変数を構成します。
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) などの関連サービスまたは開発ツールを再起動する必要がある場合があります。
環境変数を使用して資格情報を渡します。
accessKeyId := os.Getenv("TABLESTORE_ACCESS_KEY_ID") accessKeySecret := os.Getenv("TABLESTORE_ACCESS_KEY_SECRET") securityToken := os.Getenv("TABLESTORE_SESSION_TOKEN")
静的資格情報
コード内の変数を使用してアクセス資格情報を定義できます。コードの実行中に、これらの変数には、環境変数、構成ファイル、またはその他の外部データソースから取得した実際の資格情報の値が入力されます。
次の手順では、構成ファイルを使用して資格情報を渡す方法について説明します。
config.iniという名前の構成ファイルを作成します。[credentials] TABLESTORE_ACCESS_KEY_ID = your_sts_access_key_id TABLESTORE_ACCESS_KEY_SECRET = your_sts_access_key_secret TABLESTORE_SESSION_TOKEN = your_sts_token構成ファイルを使用して資格情報を渡します。
// 構成ファイルを読み取ります。 config, err := ini.Load("config.ini") if err != nil { fmt.Println("Failed to read the configuration file:", err) } // 構成ファイルから AccessKey ID と AccessKey シークレットを取得します。 access_key_id := config.Section("credentials").Key("TABLESTORE_ACCESS_KEY_ID").String() access_key_secret := config.Section("credentials").Key("TABLESTORE_ACCESS_KEY_SECRET").String() security_token := config.Section("credentials").Key("TABLESTORE_SESSION_TOKEN").String()
長期的なアクセス資格情報の構成
アプリケーションが、外部攻撃を受けやすい環境ではなく、安全で安定した環境にデプロイされており、Tablestore SDK for Go を使用して Tablestore に長期間アクセスする必要がある場合は、Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey ペアを使用できます。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 などの関連サービスまたは開発ツールを再起動する必要がある場合があります。
環境変数を使用して資格情報を渡します。
accessKeyId := os.Getenv("TABLESTORE_ACCESS_KEY_ID") accessKeySecret := os.Getenv("TABLESTORE_ACCESS_KEY_SECRET")
静的資格情報
コード内の変数を使用してアクセス資格情報を定義できます。コードの実行中に、これらの変数には、環境変数、構成ファイル、またはその他の外部データソースから取得した実際の資格情報の値が入力されます。次の手順では、構成ファイルを使用して資格情報を渡す方法について説明します。
config.iniという名前の構成ファイルを作成します。[credentials] TABLESTORE_ACCESS_KEY_ID = your_access_key_id TABLESTORE_ACCESS_KEY_SECRET = your_access_key_secret構成ファイルを使用して資格情報を渡します。
// 構成ファイルを読み取ります。 config, err := ini.Load("config.ini") if err != nil { fmt.Println("Failed to read the configuration file:", err) } // 構成ファイルから AccessKey ID と AccessKey シークレットを取得します。 access_key_id := config.Section("credentials").Key("TABLESTORE_ACCESS_KEY_ID").String() access_key_secret := config.Section("credentials").Key("TABLESTORE_ACCESS_KEY_SECRET").String()
次のステップ
資格情報プロバイダーを初期化したら、資格情報プロバイダーを使用して Tablestore クライアントを作成する必要があります。詳細については、「Tablestore クライアントを初期化する」をご参照ください。