10.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:\/\///"
    Copy to Clipboard Toggle word wrap

    出力例

    oidc.op1.openshiftapps.com/123456
    Copy to Clipboard Toggle word wrap

  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
      
                  	}
              	}
          	}
      	]
      }
      Copy to Clipboard Toggle word wrap
      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
    Copy to Clipboard Toggle word wrap
  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
      
      # ...
      Copy to Clipboard Toggle word wrap
      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"
    Copy to Clipboard Toggle word wrap

検証

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

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

    $ podman push <quay-server.example.com>/<organization_name>/busybox:test
    Copy to Clipboard Toggle word wrap
  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

© 2025 Red Hat