第4章 IAM ロールのトラブルシューティング
4.1. ocm-roles および user-role の IAM リソースに関する問題の解決
Red Hat OpenShift Service on AWS (ROSA) CLI、rosa
を使用してクラスターを作成しようとすると、エラーが発生する場合があります。
出力例
E: Failed to create cluster: The sts_user_role is not linked to account '1oNl'. Please create a user role and link it to the account.
このエラーは、user-role
IAM ロールが AWS アカウントにリンクされていないことを意味します。このエラーの原因については、Red Hat 組織内の別のユーザーが ocm-role
IAM ロールを作成したことが最も可能性が高くなります。user-role
IAM ロールを作成する必要があります。
あるユーザーが Red Hat アカウントにリンクされた ocm-role
IAM リソースを設定した後、その Red Hat 組織でクラスターを作成するユーザーは、クラスターをプロビジョニングするために user-role
IAM ロールが必要になります。
手順
次のコマンドを使用して、
ocm-role
およびuser-role
の IAM ロールのステータスを評価します。$ rosa list ocm-role
出力例
I: Fetching ocm roles ROLE NAME ROLE ARN LINKED ADMIN ManagedOpenShift-OCM-Role-1158 arn:aws:iam::2066:role/ManagedOpenShift-OCM-Role-1158 No No
$ rosa list user-role
出力例
I: Fetching user roles ROLE NAME ROLE ARN LINKED ManagedOpenShift-User.osdocs-Role arn:aws:iam::2066:role/ManagedOpenShift-User.osdocs-Role Yes
これらのコマンドの結果を使用して、不足している IAM リソースを作成およびリンクできます。
4.1.1. ocm-role IAM ロールの作成
ocm-role
IAM ロールは、コマンドラインインターフェイス (CLI) を使用して作成します。
前提条件
- AWS アカウントがある。
- OpenShift Cluster Manager 組織で Red Hat 組織管理者特権がある。
- AWS アカウント全体のロールをインストールするために必要な権限がある。
-
インストールホストに、最新の Red Hat OpenShift Service on AWS (ROSA) CLI (
rosa
) をインストールして設定している。
手順
基本的な権限を持つ ocm-role IAM ロールを作成するには、次のコマンドを実行します。
$ rosa create ocm-role
管理者権限を持つ ocm-role IAM ロールを作成するには、次のコマンドを実行します。
$ rosa create ocm-role --admin
このコマンドを使用すると、特定の属性を指定してロールを作成できます。次の出力例は、選択された自動モードを示しています。これにより、ROSA CLI (
rosa
) で Operator のロールとポリシーを作成できます。詳細は、関連情報に記載されているアカウント全体のロールの作成方法を参照してください。
出力例
I: Creating ocm role ? Role prefix: ManagedOpenShift 1 ? Enable admin capabilities for the OCM role (optional): No 2 ? Permissions boundary ARN (optional): 3 ? Role creation mode: auto 4 I: Creating role using 'arn:aws:iam::<ARN>:user/<UserName>' ? Create the 'ManagedOpenShift-OCM-Role-182' role? Yes 5 I: Created role 'ManagedOpenShift-OCM-Role-182' with ARN 'arn:aws:iam::<ARN>:role/ManagedOpenShift-OCM-Role-182' I: Linking OCM role ? OCM Role ARN: arn:aws:iam::<ARN>:role/ManagedOpenShift-OCM-Role-182 6 ? Link the 'arn:aws:iam::<ARN>:role/ManagedOpenShift-OCM-Role-182' role with organization '<AWS ARN'? Yes 7 I: Successfully linked role-arn 'arn:aws:iam::<ARN>:role/ManagedOpenShift-OCM-Role-182' with organization account '<AWS ARN>'
- 1
- 作成されたすべての AWS リソースの接頭辞値。この例では、
ManagedOpenShift
がすべての AWS リソースを付加します。 - 2
- このロールに追加の管理者権限を付与するかどうかを選択します。注記
--admin
オプションを使用した場合、このプロンプトは表示されません。 - 3
- パーミッション境界を設定するためのポリシーの Amazon Resource Name (ARN)。
- 4
- AWS ロールを作成する方法を選択します。
auto
を使用して、ROSA CLI はロールおよびポリシーを生成してリンクします。auto
モードでは、AWS ロールを作成するためのいくつかの異なるプロンプトが表示されます。 - 5
- auto メソッドは、接頭辞を使用して特定の
ocm-role
を作成するかどうかを尋ねます。 - 6
- IAM ロールを OpenShift Cluster Manager に関連付けることを確認します。
- 7
- 作成したロールを AWS 組織にリンクします。
4.1.2. ユーザーロール IAM ロールの作成
コマンドラインインターフェイス (CLI) を使用して、user-role
IAM ロールを作成できます。
前提条件
- AWS アカウントがある。
-
インストールホストに、最新の Red Hat OpenShift Service on AWS (ROSA) CLI (
rosa
) をインストールして設定している。
手順
基本的な権限を持つ
user-role
IAM ロールを作成するには、次のコマンドを実行します。$ rosa create user-role
このコマンドを使用すると、特定の属性を指定してロールを作成できます。次の出力例は、選択された自動モードを示しています。これにより、ROSA CLI (
rosa
) で Operator のロールとポリシーを作成できます。詳細は、関連情報の「自動および手動のデプロイメントモードについて」を参照してください。
出力例
I: Creating User role ? Role prefix: ManagedOpenShift 1 ? Permissions boundary ARN (optional): 2 ? Role creation mode: auto 3 I: Creating ocm user role using 'arn:aws:iam::2066:user' ? Create the 'ManagedOpenShift-User.osdocs-Role' role? Yes 4 I: Created role 'ManagedOpenShift-User.osdocs-Role' with ARN 'arn:aws:iam::2066:role/ManagedOpenShift-User.osdocs-Role' I: Linking User role ? User Role ARN: arn:aws:iam::2066:role/ManagedOpenShift-User.osdocs-Role ? Link the 'arn:aws:iam::2066:role/ManagedOpenShift-User.osdocs-Role' role with account '1AGE'? Yes 5 I: Successfully linked role ARN 'arn:aws:iam::2066:role/ManagedOpenShift-User.osdocs-Role' with account '1AGE'
- 1
- 作成されたすべての AWS リソースの接頭辞値。この例では、
ManagedOpenShift
がすべての AWS リソースを付加します。 - 2
- パーミッション境界を設定するためのポリシーの Amazon Resource Name (ARN)。
- 3
- AWS ロールを作成する方法を選択します。
auto
を使用して、ROSA CLI ツールは AQS アカウントを生成してリンクします。auto
モードでは、AWS ロールを作成するためのいくつかの異なるプロンプトが表示されます。 - 4
- auto メソッドは、接頭辞を使用して特定の
user-role
を作成するかどうかを尋ねます。 - 5
- 作成したロールを AWS 組織にリンクします。
4.1.3. AWS アカウントのリンク
Red Hat OpenShift Service on AWS (ROSA) CLI、rosa
を使用して、AWS アカウントを既存の IAM ロールにリンクできます。
前提条件
- AWS アカウントがある。
- OpenShift Cluster Manager Hybrid Cloud Console を使用してクラスターを作成している。
- AWS アカウント全体のロールをインストールするために必要な権限がある。詳細は、このセクションの関連情報を参照してください。
-
インストールホストに最新の AWS (
aws
) および ROSA (rosa
) CLI をインストールして設定している。 ocm-role
およびuser-role
IAM ロールを作成しましたが、まだ AWS アカウントにリンクしていません。次のコマンドを実行して、IAM ロールがすでにリンクされているかどうかを確認できます。$ rosa list ocm-role
$ rosa list user-role
両方のロールの
Linked
列にYes
が表示されている場合、ロールはすでに AWS アカウントにリンクされています。
手順
CLI から、Amazon Resource Name (ARN) を使用して、
ocm-role
リソースを Red Hat 組織にリンクします。注記rosa link
コマンドを実行するには、Red Hat Organization Administrator (組織管理者権限) が必要です。ocm-role
リソースを AWS アカウントにリンクすると、組織内のすべてのユーザーに表示されます。$ rosa link ocm-role --role-arn <arn>
出力例
I: Linking OCM role ? Link the '<AWS ACCOUNT ID>` role with organization '<ORG ID>'? Yes I: Successfully linked role-arn '<AWS ACCOUNT ID>' with organization account '<ORG ID>'
CLI から、Amazon Resource Name (ARN) を使用して、
user-role
リソースを Red Hat ユーザーアカウントにリンクします。$ rosa link user-role --role-arn <arn>
出力例
I: Linking User role ? Link the 'arn:aws:iam::<ARN>:role/ManagedOpenShift-User-Role-125' role with organization '<AWS ID>'? Yes I: Successfully linked role-arn 'arn:aws:iam::<ARN>:role/ManagedOpenShift-User-Role-125' with organization account '<AWS ID>'
4.1.4. 複数の AWS アカウントを Red Hat 組織に関連付ける
複数の AWS アカウントを Red Hat 組織に関連付けることができます。複数のアカウントを関連付けると、Red Hat 組織の関連付けられた AWS アカウントのいずれかに Red Hat OpenShift Service on AWS (ROSA) クラスターを作成できます。
この機能を使用すると、リージョンにバインドされた環境として複数の AWS プロファイルを使用することにより、さまざまな AWS リージョンにクラスターを作成できます。
前提条件
- AWS アカウントがある。
- OpenShift Cluster Manager Hybrid Cloud Console を使用してクラスターを作成している。
- AWS アカウント全体のロールをインストールするために必要な権限がある。
-
インストールホストに最新の AWS (
aws
) および ROSA (rosa
) CLI をインストールして設定している。 -
ocm-role
およびuser-role
IAM ロールを作成している。
手順
追加の AWS アカウントを関連付けるには、最初にローカル AWS 設定でプロファイルを作成します。次に、追加の AWS アカウントに ocm-role
、user、および account のロールを作成して、アカウントを Red Hat 組織に関連付けます。
追加のリージョンでロールを作成するには、rosa create
コマンドの実行時に --profile <aws-profile>
パラメーターを指定し、<aws_profile>
を追加のアカウントプロファイル名に置き換えます。
OpenShift Cluster Manager ロールを作成するときに AWS アカウントプロファイルを指定するには、以下を実行します。
$ rosa create --profile <aws_profile> ocm-role
ユーザーロールを作成するときに AWS アカウントプロファイルを指定するには、以下を実行します。
$ rosa create --profile <aws_profile> user-role
アカウントロールを作成するときに AWS アカウントプロファイルを指定するには、以下を実行します。
$ rosa create --profile <aws_profile> account-roles
プロファイルを指定しない場合は、デフォルトの AWS プロファイルが使用されます。