第17章 Multicloud Object Gateway の Security Token Service を使用した別のユーザーのロールの継承
Multicloud Object Gateway (MCG) は、Amazon Web Services と同様の Security Token Service (STS) のサポートを提供します。
他のユーザーが特定のユーザーのロールを継承できるようにするには、そのユーザーにロール設定を割り当てる必要があります。MCG CLI ツールを使用してロールの設定を管理できます。
次の例は、MCG ユーザー 2 つ (assumer@mcg.test と assumer2@mcg.test) が特定のユーザーのロールを継承することを許可するロール設定を示しています。
'{"role_name": "AllowTwoAssumers", "assume_role_policy": {"version": "2012-10-17", "statement": [ {"action": ["sts:AssumeRole"], "effect": "allow", "principal": ["assumer@mcg.test", "assumer2@mcg.test"]}]}}'
CLI ツールを使用してロール設定を割り当てます。
mcg sts assign-role --email <assumed user's username> --role_config '{"role_name": "AllowTwoAssumers", "assume_role_policy": {"version": "2012-10-17", "statement": [ {"action": ["sts:AssumeRole"], "effect": "allow", "principal": ["assumer@mcg.test", "assumer2@mcg.test"]}]}}'後続の手順に必要なロールを継承する前に、以下の情報を収集します。
- 継承者 (ロールを継承するユーザー) のアクセスキー ID とシークレットアクセスキー
以下のコマンドを使用して取得できる MCG STS エンドポイント。
$ oc -n openshift-storage get route- 想定されるユーザーのアクセスキー ID。
-
ロール設定の
role_name値。 - ロールセッションで選択した名前
- 設定ロールの準備ができたら、適切なユーザーに割り当てます (前の手順で説明したデータを入力します)-
AWS_ACCESS_KEY_ID=<aws-access-key-id> AWS_SECRET_ACCESS_KEY=<aws-secret-access-key1> aws --endpoint-url <mcg-sts-endpoint> sts assume-role --role-arn arn:aws:sts::<assumed-user-access-key-id>:role/<role-name> --role-session-name <role-session-name>
クラスターの設定によっては、--no-verify-ssl の追加が必要になる場合があります。
結果の出力には、他のユーザーのロールを継承しながらアクションを実行するために使用できるアクセスキー ID、シークレットアクセスキー、およびセッショントークンが含まれます。
次の例に示すように、ロールを引き受ける手順の後に生成された認証情報を使用できます。
AWS_ACCESS_KEY_ID=<aws-access-key-id> AWS_SECRET_ACCESS_KEY=<aws-secret-access-key1> AWS_SESSION_TOKEN=<session token> aws --endpoint-url <mcg-s3-endpoint> s3 ls