9.4. AWS STS を使用するための Red Hat OpenShift Service on AWS での Red Hat Quay の設定


OpenShift Service on AWS で AWS STS を使用するように Red Hat Quay を設定するには、以下の手順に従います。

前提条件

  • IAM ユーザーを作成した。
  • s3 Role ARN を作成した。
  • Role ARN を使用する Custom Trust Policy を作成した。

手順

  1. 次のコマンドを入力して、serviceAccountIssuer リソースを取得します。

    $ oc get authentication.config.openshift.io cluster -o json | jq -r .spec.serviceAccountIssuer | sed -e "s/^https:\/\///"

    出力例

    oidc.op1.openshiftapps.com/123456

  2. Amazon Web Services (AWS) コンソールの Identity and Access Management (IAM) コンソールで、次の手順を実行します。

    1. Roles をクリックします。
    2. AWS STS で使用するロールの名前 (例: example-role) をクリックします。
    3. Trust relationships タブをクリックすると、「S3 ロールの作成」で作成された JSON ポリシーが表示されます。JSON ポリシーを次のように更新します。

      {
      	"Version": "2012-10-17",
      	"Statement": [
          	{
              	"Sid": "Statement1",
              	"Effect": "Allow",
              	"Principal": {
                  	"Federated": "arn:aws:iam::123456:oidc-provider/oidc.op1.openshiftapps.com/123456" 
      1
      
              	},
              	"Action": "sts:AssumeRoleWithWebIdentity", 
      2
      
              	"Condition": {
                  	"StringEquals": {
                      	"oidc.op1.openshiftapps.com/123456:sub": "system:serviceaccount:quay:registry-quay-app" 
      3
      
                  	}
              	}
          	}
      	]
      }
      1
      JSON ポリシーの Principal パラメーターを Federated:<your_user_ARN>:<serviceAccountIssuer_domain_path> に更新します。
      2
      JSON ポリシーの Action パラメーターを sts:AssumeRoleWithWebIdentity に更新します。
      3
      JSON ポリシーの Condition パラメーターを StringEquals”: “<serviceAccountIssuer>:sub”: “system:serviceAccount:<quay_namespace>:<quay_registry_using_serviceAccount> に更新します。
    4. User ARN が正しく設定されていることを確認し、Next をクリックします。
    5. Add permissions ページで、AmazonS3FullAccess を選択し、Next をクリックします。
    6. Name, review, and create ページで、ロールの名前と説明を入力し、設定を確認し、必要に応じてタグを追加します。次に、Create Role をクリックします。
  3. Roles ページで、新しいロールをクリックし、Role ARN リソースを保存します。以下に例を示します。

    arn:aws:iam::123456:role/test_s3_access
  4. Red Hat Quay Web コンソールで、以下を実行します。

    1. Operators Installed Operators をクリックします。
    2. Red Hat Quay をクリックします。
    3. Quay Registry をクリックし、Red Hat Quay レジストリーの名前をクリックします。
    4. Config Bundle Secret の下で、レジストリー設定バンドルの名前 (例: quay-registry-config-bundle-12345) をクリックします。
    5. 設定バンドルのページで、Actions をクリックしてドロップダウンメニューを表示します。次に、Edit Secret をクリックします。
    6. config.yaml ファイルの DISTRIBUTED_STORAGE_CONFIG フィールドを次の情報で更新します。

      # ...
      DISTRIBUTED_STORAGE_CONFIG:
         default:
          - STSS3Storage
            s3_bucket: <s3_bucket_name> 
      1
      
            storage_path: <storage_path> 
      2
      
            s3_region: <region> 
      3
      
      # ...
      1
      S3 バケットの名前。
      2
      データのストレージパス。通常は /datastorage です。
      3
      Amazon Web Services のリージョン。デフォルトは us-east-1 です。
  5. Save をクリックします。QuayRegistry カスタムリソース (CR) が自動的に再起動します。
  6. Pod を実行するサービスアカウント (SA) に、EKS 設定値を使用してアノテーションを付けます。以下に例を示します。

    $ oc annotate sa registry-quay-app "eks.amazonaws.com/role-arn"="arn:aws:iam::123456:role/test_s3_access" "eks.amazonaws.com/audience"="sts.amazonaws.com" "eks.amazonaws.com/sts-regional-endpoints"="true"

検証

  1. リポジトリーにプッシュされるサンプルイメージ (例: busybox) にタグを付けます。以下に例を示します。

    $ podman tag docker.io/library/busybox <quay-server.example.com>/<organization_name>/busybox:test
  2. 次のコマンドを実行して、サンプルイメージをプッシュします。

    $ podman push <quay-server.example.com>/<organization_name>/busybox:test
  3. Red Hat Quay registry Tags でイメージをプッシュした Organization に移動して、プッシュが成功したことを確認します。
  4. Amazon Web Services (AWS) コンソールに移動し、s3 バケットを探します。
  5. s3 バケットの名前をクリックします。
  6. Objects ページで、datastorage/ をクリックします。
  7. datastorage/ ページには、次のリソースが表示されます。

    • sha256/
    • uploads/

      これらのリソースは、プッシュが成功し、AWS STS が適切に設定されていることを示しています。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat
トップに戻る