IBM Cloudant での認証についての FAQ

IBM Cloud® Identity and Access Management(IAM)は、ユーザー ID、 サービス、およびアクセス制御の管理を 1 つのアプローチに結合します。 IBM® Cloudant® for IBM Cloud® は、 IBM Cloud の ID およびアクセス管理と統合されています。

IBM Cloudant の従来のアクセス制御と IAM アクセス制御の違いは何ですか?

IBM Cloud IAM(IAM)

  • IBM Cloud 全体で集中管理されたアクセス管理。
  • 同じ一連の資格情報 (例えば、同じユーザー名とパスワードまたは IAM API キー) を使用して多種多様なリソースにユーザーまたはサービスがアクセスするのを許可します。
  • 新規データベースの作成など、アカウント管理機能へのアクセスのために、IAM API キーを付与できます。

従来の IBM Cloudant

  • IBM Cloudant に固有。
  • 各サービス・インスタンスにアクセスする場合、独自の一連の資格情報が必要です。
  • 個別のユーザーまたはサービスにバインドされない資格情報による HTTP 基本認証を使用します。

IAM のみ使用 モードが優先されるのはなぜですか?

IAM のみ使用 モードは、サービス・バインディングおよび資格情報の生成によって IAM の資格情報のみが提供されることを意味します。 IBM Cloud IAM を使用すると、以下の利点があります。

  • IBM Cloudant の標準ツールを使用して IBM Cloud へのアクセスを管理できます。
  • IBM Cloud IAM を使用した場合、簡単に取り消したりローテーションしたりできる資格情報を使用できます。

これらのモードの利点と欠点について詳しくは、『2 つのアクセス制御メカニズムの長所と短所』を参照してください。

コマンド・ラインを使用してインスタンスを作成するにはどうすればいいですか?

コマンド・ラインから新しい IBM Cloudant インスタンスを作成するときには、ibmcloud パラメーターを使用して -p ツールを含める必要があります。 このパラメーターは、オプションを JSON フォーマットで渡すことによって、アカウントに対してレガシー資格情報を有効または無効にします。 このオプションは legacyCredentials という名前です。

インスタンスを Use only IAM (IAM のみ使用) として作成するには、以下のコマンドを実行します。

ibmcloud resource service-instance-create  "Instance Name" \
    cloudantnosqldb Standard us-south \
    -p '{"legacyCredentials": false}'

IAM リーダー役割およびライター役割を使用するときに Use only IAM (IAM のみ使用) モードを使用しない場合、意図したよりも多くのアクセス許可を持つレガシー資格情報をユーザーに認可する可能性があります。

サービス資格情報を生成するにはどうすればいいですか?

プライマリー IBM Cloud IAM インターフェースでサービス資格情報を生成できます。 Use only IAM (IAM のみ使用) を選択した場合、サービス資格情報には IAM 値のみが含まれます。 サービス資格情報 JSON は、次の例のようになります。

{
  "apikey": "MxVp86XHkU82Wc97tdvDF8qM8B0Xdit2RqR1mGfVXPWz",
  "host": "2922d728-27c0-4c7f-aa80-1e59fbeb04d0-bluemix.cloudant.com",
  "iam_apikey_description": "Auto generated apikey during resource-key [...]",
  "iam_apikey_name": "auto-generated-apikey-050d21b5-5f[...]",
  "iam_role_crn": "crn:v1:bluemix:public:iam::::serviceRole:Manager",
  "iam_serviceid_crn": "crn:v1:staging:public:iam-identity::[...]",
  "url": "https://76838001-b883-444d-90d0-46f89e942a15-bluemix.cloudant.com",
  "username": "76838001-b883-444d-90d0-46f89e942a15-bluemix"
}

上の例で、各値の意味は次のとおりです。

apikey
IAM API キー。
host
対応する IP アドレスでドメイン・ネームを解決する DNS。
iam_apikey_description
IAM API キーの説明。
iam_apikey_name
IAM API キーの ID。
iam_role_crn
IAM API キーの IAM 役割。
iam_serviceid_crn
サービス ID の CRN。
url
IBM Cloudant サービスの URL。
username
内部の IBM Cloudant アカウント名。

詳しくは、IBM Cloud API キーおよび IAM のみ使用を参照してください。

資格情報をローテーションするにはどうすればよいですか?

ほとんどの場合、資格情報のローテーションは単純なプロセスです。

  1. 置換サービス資格情報を生成します。 詳細については、「 サービス認証情報を生成するにはどうすればよいですか? 」を参照してください。

  2. 現在の資格情報を、新しく生成された資格情報に置き換えます。

  3. 使用されなくなったサービス資格情報を削除します。

ただし、複製文書でレガシー資格情報を使用している場合、複製の資格情報をローテーションすると、複製は最初から開始されます。 変更がタイムリーに到着するようにするには、以前の複製と関連サービス資格情報の削除に追いつくと、新しい複製を作成することをお勧めします。 このプロセスは、以下の手順で説明されています:

  1. 置換サービス資格情報を生成します。 詳細については、「 サービス認証情報を生成するにはどうすればよいですか? 」を参照してください。

  2. 同じ設定で新しい資格情報を使用して複製を作成します。

  3. 「アクティブ・タスク」 を使用して新規複製をモニターするか、 _scheduler/jobs を使用できます。

  4. 新しい複製のchanges_pendingフィールドが要件に対して適切な低い値になると、以前の資格情報を使用する複製を削除できます。

  5. 使用されなくなったサービス資格情報を削除します。

IAM API キーを使用する複製は、複製する変更を遅らせることなく、新しい API キーを直接使用するように更新できます。