第18章 有効期間の短いトークンを使用した RHACS の統合


Red Hat Advanced Cluster Security for Kubernetes (RHACS) を使用すると、有効期間の短いトークンを使用して、選択したクラウドプロバイダー API に対して認証できます。RHACS は、次のクラウドプロバイダー統合をサポートしています。

  • Secure Token Service (STS) を使用する Amazon Web Services (AWS)
  • Workload Identity 連携を使用する Google Cloud Platform (GCP)

RHACS は、次のプラットフォームに RHACS をインストールする場合にのみ、有効期間の短いトークンによる統合をサポートします。

  • AWS 上の Elastic Kubernetes Service (EKS)
  • GCP 上の Google Kubernetes Engine (GKE)
  • OpenShift Container Platform

有効期間の短い認証を有効にするには、Kubernetes または OpenShift Container Platform クラスターとクラウドプロバイダーの間に信頼関係を確立する必要があります。EKS および GKE クラスターの場合は、クラウドプロバイダーのメタデータサービスを使用します。OpenShift Container Platform クラスターの場合は、OpenShift Container Platform サービスアカウント署名者キーを含む、公開されている OpenID Connect (OIDC) プロバイダーバケットが必要です。

注記

有効期間の短いトークンによる統合を使用するすべての Central クラスターで、クラウドプロバイダーとの信頼関係を確立する必要があります。ただし、有効期間の短いトークンイメージによる統合とスキャン委譲を組み合わせて使用する場合は、Sensor クラスターでも信頼関係を確立する必要があります。

18.1. AWS Secure Token Service の設定

RHACS の統合では、Secure Token Service を使用して Amazon Web Services に対して認証できます。統合の Use container IAM role オプションを有効にするには、RHACS で AssumeRole を設定する必要があります。

重要

RHACS の Pod に関連付けられた AWS ロールには、統合に必要な IAM 権限が必要です。たとえば、Elastic Container Registry と統合するためのコンテナーロールを設定するには、レジストリーへの完全な読み取りアクセスを有効にしてください。AWS IAM ロールの詳細は、IAM roles を参照してください。

18.1.1. Elastic Kubernetes Service (EKS) の設定

EKS で Red Hat Advanced Cluster Security for Kubernetes (RHACS) を実行する場合、Amazon Secure Token Service を通じて有効期間の短いトークンを設定できます。

手順

  1. 次のコマンドを実行して、EKS クラスターの IAM OpenID Connect (OIDC) プロバイダーを有効にします。

    $ eksctl utils associate-iam-oidc-provider --cluster <cluster_name> --approve
  2. EKS クラスターの IAM ロールを作成し ます。
  3. ロールの権限ポリシーを編集し、統合に必要な権限を付与します。以下に例を示します。

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "VisualEditor0",
                "Effect": "Allow",
                "Action": [
                    "ecr:BatchCheckLayerAvailability",
                    "ecr:BatchGetImage",
                    "ecr:DescribeImages",
                    "ecr:DescribeRepositories",
                    "ecr:GetAuthorizationToken",
                    "ecr:GetDownloadUrlForLayer",
                    "ecr:ListImages"
                ],
                "Resource": "arn:aws:iam::<ecr_registry>:role/<role_name>"
            }
        ]
    }
  4. 引き受けるロールの信頼関係を更新します。

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "AWS": [
              "arn:aws:iam::<ecr-registry>:role/<role_name>" 1
            ]
          },
          "Action": "sts:AssumeRole"
        }
      ]
    }
    1
    <role_name> は、前の手順で作成した新しいロールと一致している必要があります。
  5. 次のコマンドを入力して、新しく作成したロールをサービスアカウントに関連付けます。

    $ oc -n stackrox annotate sa central eks.amazonaws.com/role-arn=arn:aws:iam::67890:role/<role_name> 1
    1
    Kubernetes を使用する場合は、oc の代わりに kubectl を入力します。
  6. 次のコマンドを入力して Central Pod を再起動し、変更を適用します。

    $ oc -n stackrox delete pod -l "app in (central,sensor)" 1
    1
    Kubernetes を使用する場合は、oc の代わりに kubectl を入力します。

18.1.2. OpenShift Container Platform の設定

OpenShift Container Platform で Red Hat Advanced Cluster Security for Kubernetes (RHACS) を実行する場合、Amazon Secure Token Service を通じて有効期間の短いトークンを設定できます。

前提条件

  • OpenShift Container Platform サービスアカウント署名者キーを含むパブリックな OpenID Connect (OIDC) 設定バケットがある。OpenShift Container Platform クラスターの OIDC 設定を取得するには、Cloud Credential Operator in manual mode for short-term credentials の手順を使用することを推奨します。
  • AWS IAM へのアクセス権と、ロールを作成および変更する権限がある。

手順

  1. Creating OpenID Connect (OIDC) identity providers の手順に従って、OpenShift Container Platform クラスターの Web アイデンティティーを作成します。openshiftAudience の値として使用します。
  2. OpenShift Container Platform クラスターの Web アイデンティティー用の IAM ロールを作成 します。
  3. ロールの権限ポリシーを編集し、統合に必要な権限を付与します。以下に例を示します。

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "VisualEditor0",
                "Effect": "Allow",
                "Action": [
                    "ecr:BatchCheckLayerAvailability",
                    "ecr:BatchGetImage",
                    "ecr:DescribeImages",
                    "ecr:DescribeRepositories",
                    "ecr:GetAuthorizationToken",
                    "ecr:GetDownloadUrlForLayer",
                    "ecr:ListImages"
                ],
                "Resource": "arn:aws:iam::<ecr_registry>:role/<role_name>"
            }
        ]
    }
  4. 引き受けるロールの信頼関係を更新します。

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "Federated": "<oidc_provider_arn>"
                },
                "Action": "sts:AssumeRoleWithWebIdentity",
                "Condition": {
                    "StringEquals": {
                        "<oidc_provider_name>:aud": "openshift"
                    }
                }
            }
        ]
    }
  5. Central または Sensor デプロイメントで次の RHACS 環境変数を設定します。

    AWS_ROLE_ARN=<role_arn>
    AWS_WEB_IDENTITY_TOKEN_FILE=/var/run/secrets/openshift/serviceaccount/token
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.