アクセスコントロールリストを使用したユーザーの認証 (ACLs) - Amazon MemoryDB

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

アクセスコントロールリストを使用したユーザーの認証 (ACLs)

アクセスコントロールリスト () を使用してユーザーを認証できますACLs。

ACLs では、ユーザーをグループ化してクラスターへのアクセスを制御できます。これらのアクセスコントロールリストは、クラスターへのアクセスを分類する方法として設計されています。

ではACLs、次のセクションで説明するように、アクセス文字列を使用してユーザーを作成し、特定のアクセス許可を割り当てます。特定のロール (管理者、人事) と連携したアクセスコントロールリストにユーザーを割り当てます。その後、それらは 1 つ以上の MemoryDB クラスターにデプロイされます。これにより、同じMemoryDBクラスターまたはクラスターを使用するクライアント間にセキュリティ境界を設定し、クライアントが互いのデータにアクセスできないようにすることができます。

ACLs は、Redis 6 ACLでの OSS の導入をサポートするように設計されています。MemoryDB クラスターACLsで を使用する場合、いくつかの制限があります。

  • アクセス文字列にパスワードを指定することはできません。パスワードは CreateUserまたは UpdateUser呼び出しで設定します。

  • ユーザー権限については、on および off をアクセス文字列の一部としてパスします。アクセス文字列にどちらも指定されていない場合、ユーザーには ‭off が割り当てられ、クラスターへのアクセス権はありません。‬‬‬‬

  • 禁止されたコマンドは使用できません。禁止されているコマンドを指定すると、例外がスローされます。これらのコマンドの一覧については、「‭制限されるコマンド‬」を参照してください。‬‬‬‬

  • reset コマンドを、アクセス文字列の一部として使用することはできません。API パラメータでパスワードを指定し、MemoryDB がパスワードを管理します。したがって、reset を使用することはできません。それによりユーザーのすべてのパスワードが削除されるからです。

  • Redis 6 OSS は ACL LIST コマンドを導入します。このコマンドは、各ユーザーに適用されるACLルールとともにユーザーのリストを返します。MemoryDB は ACL LIST コマンドをサポートしますが、Redis と同様にパスワードハッシュのサポートは含まれませんOSS。MemoryDB では、 DescribeUsersオペレーションを使用して、アクセス文字列に含まれるルールを含む同様の情報を取得できます。ただし、 DescribeUsers はユーザーパスワードを取得しません。

    MemoryDB ACL WHOAMIでサポートされているその他の読み取り専用コマンドには、、ACLUSERS、および ACL CATが含まれます。MemoryDB は、他の書き込みベースのACLコマンドをサポートしていません。

MemoryDB ACLsでの の使用の詳細については、以下を参照してください。

アクセス文字列を使用したアクセス許可の指定

MemoryDB クラスターに対するアクセス許可を指定するには、 AWS CLI または を使用してアクセス文字列を作成し、ユーザーに割り当てます AWS Management Console。

アクセス文字列は、ユーザーに適用されるスペース区切りルールのリストとして定義されます。それらは、ユーザーが実行できるコマンドと、ユーザーが操作できるキーを定義します。コマンドを実行するには、ユーザーは、実行されているコマンドと、そのコマンドによってアクセスされているすべてのキーにアクセスできる必要があります。ルールは左から右に累積的に適用され、提供された文字列に冗長性がある場合は、提供された文字列の代わりに、より単純な文字列を使用できます。

ACL ルールの構文については、「」を参照してくださいACL

次の例では、アクセス文字列は、使用可能なすべてのキーおよびコマンドにアクセスできるアクティブなユーザーを表します。

on ~* &* +@all

アクセス文字列の構文は、次のように分類されます。

  • on — ユーザーはアクティブなユーザーです。

  • ~* — アクセス権はすべての使用可能なキーに与えられます。

  • &* – アクセスはすべての pubsub チャネルに付与されます。

  • +@all — アクセス権はすべての使用可能なコマンドに与えられます。

上記の設定は、最も制限が緩い設定です。これらの設定を変更して、セキュリティを強化できます。

次の例では、アクセス文字列は「app::」キースペースで始まるキーに対する読み取りアクセスに制限されたアクセス権を持つユーザーを表します。

on ~app::* -@all +@read

ユーザーがアクセス権を持つコマンドを一覧表示することで、これらのアクセス許可をさらに絞り込むことができます。

+command1 – ユーザーのコマンドへのアクセスは に制限されます。コマンド 1.

+@category — ユーザーのアクセスは、コマンドのカテゴリーに制限されます。

アクセス文字列をユーザーに割り当てる方法については、「コンソールと を使用したユーザーとアクセスコントロールリストの作成 CLI」を参照してください。

既存のワークロードを MemoryDB に移行する場合は、ACL LIST を呼び出すことでアクセス権を取得して、ユーザーおよびパスワードハッシュを除外できます。

ベクトル検索機能

注記

この機能は MemoryDB のプレビューリリースであり、変更される可能性があります。

ベクトル検索 では、すべての検索コマンドは @search カテゴリに属しており、検索コマンドを含むために既存のカテゴリ @read@write@fast、および @slow が更新されます。ユーザーがあるカテゴリにアクセスできない場合、そのユーザーは、そのカテゴリ内のいかなるコマンドにもアクセスできません。例えば、ユーザーが @search にアクセスできない場合、そのユーザーは、検索関連のいかなるコマンドも実行できません。

次の表は、適切なカテゴリへの検索コマンドのマッピングを示しています。

VSS コマンド @read @write @fast @slow
FT.CREATE Y Y
FT.DROPINDEX Y Y
FT.LIST Y Y
FT.INFO Y Y
FT.SEARCH Y Y
FT.AGGREGATE Y Y
FT.PROFILE Y Y
FT.ALIASADD Y Y
FT.ALIASDEL Y Y
FT.ALIASUPDATE Y Y
FT._ALIASLIST Y Y
FT.EXPLAIN Y Y
FT.EXPLAINCLI Y Y
FT.CONFIG Y Y

MemoryDB のクラスターACLsへの適用

MemoryDB を使用するにはACLs、次の手順を実行します。

  1. 1 つ以上のユーザーを作成します。

  2. を作成しACL、リストにユーザーを追加します。

  3. クラスターACLに を割り当てます。

これらのステップは、以下に詳細が説明されます。

コンソールと を使用したユーザーとアクセスコントロールリストの作成 CLI

ACLs ユーザーのユーザー情報はユーザー名であり、オプションでパスワードとアクセス文字列です。アクセス文字列は、キーとコマンドでのアクセス許可レベルを提供します。この名前 はユーザーに対して一意であり、エンジンに渡されるものです。

指定したユーザーアクセス許可が、 の意図する目的に合っていることを確認してくださいACL。例えば、 ACLという名前の を作成する場合Administrators、そのグループに追加するすべてのユーザーには、そのアクセス文字列がキーとコマンドへのフルアクセスに設定されている必要があります。のユーザーの場合e-commerceACL、アクセス文字列を読み取り専用アクセスに設定することができます。

MemoryDB は、アカウントごとにユーザー名を使用してデフォルトユーザー "default" を自動的に設定します。明示的な追加がない限り、クラスターに関連付けられませんACL。このユーザーを変更または削除することはできません。このユーザーは、以前の Redis OSSバージョンのデフォルトの動作と互換性があり、すべてのコマンドを呼び出してすべてのキーにアクセスできるようにするアクセス文字列があります。

デフォルトのユーザーを含むすべてのアカウントに対して、変更不可能な「オープンアクセスACL」が作成されます。これはACL、デフォルトのユーザーがメンバーにできる唯一のものです。クラスターを作成するときは、クラスターACLに関連付ける を選択する必要があります。デフォルトユーザーACLで「オープンアクセス」を適用するオプションがありますが、ビジネスニーズに制限されたアクセス許可を持つユーザーACLで を作成することを強くお勧めします。

有効になっていないクラスターは、「オープンアクセス」を使用してオープン認証ACLを提供するTLS必要があります。

ACLs ユーザーなしで作成できます。空の ACLはクラスターにアクセスできず、 TLSが有効なクラスターにのみ関連付けることができます。

ユーザーを作成するときは、最大 2 つのパスワードを設定できます。パスワードを変更しても、クラスターへの既存の接続はすべて維持されます。

特に、 を MemoryDB ACLsに使用するときは、次のユーザーパスワードの制約に注意してください。

  • パスワードは、印刷可能な 16~128 文字にする必要があります。

  • 次の英数字以外の文字は使用できません: , "" / @

コンソールと を使用したユーザーの管理 CLI

コンソールでユーザーを作成するには
  1. にサインイン AWS Management Console し、 で MemoryDB コンソールを開きますhttps://console.aws.amazon.com/memorydb/

  2. 左のナビゲーションペインで、[ユーザー] を選択します。

  3. [ユーザーの作成] を選択します。

  4. [ユーザーの作成] ページで [名前] を入力します。

    クラスターの命名に関する制約は次のとおりです。

    • 1~40 個の英数字またはハイフンを使用する必要があります。

    • 先頭は文字を使用する必要があります。

    • 連続する 2 つのハイフンを含めることはできません。

    • ハイフンで終わることはできません。

  5. [パスワード] には、最大 2 つのパスワードを入力できます。

  6. [アクセス文字列] にアクセス文字列を入力します。アクセス文字列は、ユーザーが許可されたキーとコマンドのアクセス許可レベルを設定します。

  7. タグ では、オプションでタグを適用してユーザーを検索およびフィルタリングしたり、 AWS コストを追跡したりできます。

  8. [Create] (作成) を選択します。

を使用してユーザーを作成するには CLI
  • ユーザーを作成するには、create-userコマンドを使用します。

    Linux、macOS、Unix の場合:

    aws memorydb create-user \ --user-name user-name-1 \ --access-string "~objects:* ~items:* ~public:*" \ --authentication-mode \ Passwords="abc",Type=password

    Windows の場合:

    aws memorydb create-user ^ --user-name user-name-1 ^ --access-string "~objects:* ~items:* ~public:*" ^ --authentication-mode \ Passwords="abc",Type=password
コンソールでユーザーに変更を加えるには
  1. にサインイン AWS Management Console し、 で MemoryDB コンソールを開きますhttps://console.aws.amazon.com/memorydb/

  2. 左のナビゲーションペインで、[ユーザー] を選択します。

  3. 変更するユーザーの横にあるラジオボタンを選択し、[アクション] ->[変更] を選択します。

  4. パスワードを変更する場合は、[パスワードの変更] ラジオボタンを選択します。パスワードが 2 つある場合は、どちらか一方を変更するときに両方を入力する必要があることに注意してください。

  5. アクセス文字列を更新する場合は、新しい文字列を入力します。

  6. Modify を選択します。

を使用してユーザーを変更するには CLI
  1. ユーザーの更新」コマンドを使用してユーザーを変更します。

  2. ユーザーを変更すると、ユーザーに関連付けられたアクセスコントロールリストが、 に関連付けられたクラスターとともに更新されますACL。既存の接続はすべて維持されます。以下は例です。

    Linux、macOS、Unix の場合:

    aws memorydb update-user \ --user-name user-name-1 \ --access-string "~objects:* ~items:* ~public:*"

    Windows の場合:

    aws memorydb update-user ^ --user-name user-name-1 ^ --access-string "~objects:* ~items:* ~public:*"
コンソールでユーザーの詳細を表示するには
  1. にサインイン AWS Management Console し、 で MemoryDB コンソールを開きますhttps://console.aws.amazon.com/memorydb/

  2. 左のナビゲーションペインで、[ユーザー] を選択します。

  3. [ユーザー名] でユーザーを選択するか、検索ボックスを使用してユーザーを検索します。

  4. ユーザー設定では、ユーザーのアクセス文字列、パスワード数、ステータス、Amazon リソースネーム () を確認できますARN。

  5. アクセスコントロールリスト (ACL) で、ACLユーザーが属しているものを確認できます。

  6. [タグ] では、ユーザーに関連付けられているすべてのタグを確認できます。

ユーザーの詳細」 コマンドを使用して、ユーザーの詳細を表示します。

aws memorydb describe-users \ --user-name my-user-name
コンソールでユーザーを削除するには
  1. にサインイン AWS Management Console し、 で MemoryDB コンソールを開きますhttps://console.aws.amazon.com/memorydb/

  2. 左のナビゲーションペインで、[ユーザー] を選択します。

  3. 変更するユーザーの横にあるラジオボタンを選択し、[アクション]->[削除] を選択します。

  4. 確認テキストボックスで、delete を入力し、確認 を選択します。

  5. キャンセルするには、キャンセル をクリックします。

を使用してユーザーを削除するには CLI
  • ユーザーを削除するには、delete-user コマンドを使用します。

    アカウントが削除され、そのアカウントが属するアクセス制御リストから削除されます。次に例を示します。

    Linux、macOS、Unix の場合:

    aws memorydb delete-user \ --user-name user-name-2

    Windows の場合:

    aws memorydb delete-user ^ --user-name user-name-2

コンソールと を使用したアクセスコントロールリストの管理 CLI

次に示すように、アクセスコントロールリストを作成して、1 つ以上のクラスターに対するユーザーのアクセスを分類および制御できます。

次の手順に従って、コンソールを使用してアクセス制御リストを管理します。

コンソールを使用してアクセスコントロールリストを作成するには
  1. にサインイン AWS Management Console し、 で MemoryDB コンソールを開きますhttps://console.aws.amazon.com/memorydb/

  2. 左側のナビゲーションペインで、アクセスコントロールリスト (ACL) を選択します。

  3. Create ACLを選択します。

  4. アクセスコントロールリストの作成 (ACL) ページで、ACL名前を入力します。

    クラスターの命名に関する制約は次のとおりです。

    • 1~40 個の英数字またはハイフンを使用する必要があります。

    • 先頭は文字を使用する必要があります。

    • 連続する 2 つのハイフンを含めることはできません。

    • ハイフンで終わることはできません。

  5. [ユースケースを選択する] で、次のいずれかを実行します。

    1. [ユーザーの作成] を選択して新規ユーザーを作成します。

    2. ユーザーを追加するには、[管理] を選択し、[ユーザーの管理] ダイアログからユーザーを選択し、[選択] を選択します。

  6. タグ では、オプションでタグを適用して、 を検索およびフィルタリングACLsしたり、 AWS コストを追跡したりできます。

  7. [Create] (作成) を選択します。

を使用してアクセスコントロールリストを作成するには、次の手順に従いますCLI。

を使用して新しい を作成し、ユーザーACLを追加するには CLI
  • create-acl コマンドを使用して を作成しますACL。

    Linux、macOS、Unix の場合:

    aws memorydb create-acl \ --acl-name "new-acl-1" \ --user-names "user-name-1" "user-name-2"

    Windows の場合:

    aws memorydb create-acl ^ --acl-name "new-acl-1" ^ --user-names "user-name-1" "user-name-2"
コンソールを使用してアクセスコントロールリストを変更するには
  1. にサインイン AWS Management Console し、 で MemoryDB コンソールを開きますhttps://console.aws.amazon.com/memorydb/

  2. 左側のナビゲーションペインで、アクセスコントロールリスト (ACL) を選択します。

  3. 変更ACLする を選択し、変更を選択します。

  4. [変更] ページの [選択したユーザー] で、次のいずれかを実行します。

    1. に追加するユーザーの作成を選択して、新しいユーザーを作成しますACL。

    2. ユーザーを追加または削除するには、[管理] を選択し、[ユーザーの管理] ダイアログでユーザーを選択または選択解除し、[選択] を選択します。

  5. アクセスコントロールリストの作成 (ACL) ページで、ACL名前を入力します。

    クラスターの命名に関する制約は次のとおりです。

    • 1~40 個の英数字またはハイフンを使用する必要があります。

    • 先頭は文字を使用する必要があります。

    • 連続する 2 つのハイフンを含めることはできません。

    • ハイフンで終わることはできません。

  6. [ユースケースを選択する] で、次のいずれかを実行します。

    1. [ユーザーの作成] を選択して新規ユーザーを作成します。

    2. ユーザーを追加するには、[管理] を選択し、[ユーザーの管理] ダイアログからユーザーを選択し、[選択] を選択します。

  7. [変更] を選択して変更を保存するか、[キャンセル] を選択して変更を破棄します。

を使用して、新しいユーザーACLを追加したり、現在のメンバーを削除したりして を変更するには CLI
  • update-acl コマンドを使用して を変更しますACL。

    Linux、macOS、Unix の場合:

    aws memorydb update-acl --acl-name new-acl-1 \ --user-names-to-add user-name-3 \ --user-names-to-remove user-name-2

    Windows の場合:

    aws memorydb update-acl --acl-name new-acl-1 ^ --user-names-to-add user-name-3 ^ --user-names-to-remove user-name-2
注記

から削除されたユーザーに属するすべてのオープン接続ACLは、このコマンドで終了します。

コンソールでACL詳細を表示するには
  1. にサインイン AWS Management Console し、 で MemoryDB コンソールを開きますhttps://console.aws.amazon.com/memorydb/

  2. 左側のナビゲーションペインで、アクセスコントロールリスト (ACL) を選択します。

  3. ACL 下ACLの名前を選択するか、検索ボックスを使用して を検索しますACL。

  4. ユーザー では、 に関連付けられているユーザーのリストを確認できますACL。

  5. 関連付けられているクラスターでは、 がACL属するクラスターを確認できます。

  6. タグ では、 に関連付けられているタグを確認できますACL。

describe-acls コマンドを使用して、 の詳細を表示しますACL。

aws memorydb describe-acls \ --acl-name test-group
コンソールを使用してアクセスコントロールリストを削除するには
  1. にサインイン AWS Management Console し、 で MemoryDB コンソールを開きますhttps://console.aws.amazon.com/memorydb/

  2. 左側のナビゲーションペインで、アクセスコントロールリスト (ACL) を選択します。

  3. 変更ACLする を選択し、削除を選択します。

  4. 削除ページで、delete確認ボックスに を入力し、削除またはキャンセルを選択して、 を削除しないようにしますACL。

グループに属するユーザーではなく、それACL自体が削除されます。

ACL を使用して を削除するには CLI
  • delete-acl コマンドを使用して、 を削除しますACL。

    Linux、macOS、Unix の場合:

    aws memorydb delete-acl / --acl-name

    Windows の場合:

    aws memorydb delete-acl ^ --acl-name

    上記の例では、次の応答を返します。

    aws memorydb delete-acl --acl-name "new-acl-1" { "ACLName": "new-acl-1", "Status": "deleting", "EngineVersion": "6.2", "UserNames": [ "user-name-1", "user-name-3" ], "clusters": [], "ARN":"arn:aws:memorydb:us-east-1:493071037918:acl/new-acl-1" }

アクセスコントロールリストのクラスターへの割り当て

を作成し、ユーザーACLを追加したら、 を実装する最後のステップACLsは、 ACLをクラスターに割り当てることです。

コンソールを使用してクラスターにアクセスコントロールリストを割り当てます

を使用してクラスターACLに を追加するには AWS Management Console、「」を参照してくださいMemoryDB クラスターの作成

を使用したクラスターへのアクセスコントロールリストの割り当て AWS CLI

次の AWS CLI オペレーションでは、転送中の暗号化 (TLS) が有効になっているクラスターと、 値 を持つ acl-nameパラメータを作成しますmy-acl-name。サブネット グループ subnet-group を、実存のサブネットグループに置き換えます。

主要パラメータ
  • --engine-version -「6.2」を指定してください

  • --tls-enabled – 認証と の関連付けに使用されますACL。

  • --acl-name — この値は、クラスターに対して指定されたアクセス権限を持つユーザーで構成されるアクセス制御リストを提供します。

Linux、macOS、Unix の場合:

aws memorydb create-cluster \ --cluster-name "new-cluster" \ --description "new-cluster" \ --engine-version "6.2" \ --node-type db.r6g.large \ --tls-enabled \ --acl-name "new-acl-1" \ --subnet-group-name "subnet-group"

Windows の場合:

aws memorydb create-cluster ^ --cluster-name "new-cluster" ^ --cluster-description "new-cluster" ^ --engine-version "6.2" ^ --node-type db.r6g.large ^ --tls-enabled ^ --acl-name "new-acl-1" ^ --subnet-group-name "subnet-group"

次の AWS CLI オペレーションでは、転送中の暗号化 (TLS) が有効になっているクラスターと、 値 を持つ acl-nameパラメータを変更しますnew-acl-2

Linux、macOS、Unix の場合:

aws memorydb update-cluster \ --cluster-name cluster-1 \ --acl-name "new-acl-2"

Windows の場合:

aws memorydb update-cluster ^ --cluster-name cluster-1 ^ --acl-name "new-acl-2"