Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

のブランチへのプッシュとマージを制限する AWS CodeCommit - AWS CodeCommit

AWS CodeCommit は、新規顧客には利用できなくなりました。 AWS CodeCommit の既存のお客様は、通常どおりサービスを引き続き使用できます。詳細はこちら

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS CodeCommit は、新規顧客には利用できなくなりました。 AWS CodeCommit の既存のお客様は、通常どおりサービスを引き続き使用できます。詳細はこちら

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

のブランチへのプッシュとマージを制限する AWS CodeCommit

デフォルトでは、 CodeCommit コードをリポジトリにプッシュするのに十分なアクセス許可を持つリポジトリユーザーは、そのリポジトリ内の任意のブランチに貢献できます。これは、リポジトリにブランチをコンソール、コマンドライン、または Git を使用して追加した場合でも当てはまります。ただし、一部のリポジトリユーザーだけがそのブランチにコードをプッシュまたはマージできるように、ブランチを設定することもできます。たとえば、シニア開発者のサブセットのみが変更をそのブランチにプッシュまたはマージできるように、実動コードに使用されるブランチを設定することができます。他の開発者は、依然としてブランチから引き出し、独自のブランチを作成して、プルリクエストを作成できますが、そのブランチに変更をプッシュまたはマージすることはできません。IAM の 1 つ以上のブランチのコンテキストキーを使用する条件付きポリシーを作成して、このアクセスを設定できます。

注記

このトピックのいくつかの手順を完了するには、IAM ポリシーを設定して適用するのに十分なアクセス権限を持つ管理者ユーザーでサインインする必要があります。詳細については、「IAM 管理者のユーザーおよびグループの作成」を参照してください。

ブランチに対するプッシュとマージを制限するための IAM ポリシーの設定

IAM にポリシーを作成すると、ユーザーがブランチにコミットをプッシュしたり、プルリクエストをブランチにマージするなど、ブランチを更新できないようにすることができます。これを行うには、条件が満たされている場合にのみ Deny ステートメントの効果が適用されるように、ポリシーで条件ステートメントを使用します。Deny ステートメントAPIsに含める によって、許可されないアクションが決まります。このポリシーは、リポジトリ内の 1 つのみのブランチ、リポジトリ内のいくつかのブランチ、または Amazon Web Services アカウント内のすべてのリポジトリで条件に一致するすべてのブランチに適用するように設定できます。

ブランチの条件付きポリシーを作成するには
  1. にサインイン AWS Management Console し、 で IAMコンソールを開きますhttps://console.aws.amazon.com/iam/

  2. ナビゲーションペインで、ポリシー を選択します。

  3. [ポリシーの作成] を選択します。

  4. を選択しJSON、次のポリシー例を貼り付けます。の値を、アクセスを制限するブランチを含むリポジトリARNの Resourceに置き換えます。codecommit:References の値を、アクセスを制限したいブランチへの参照に置き換えます。たとえば、このポリシーは、コミットのプッシュ、ブランチのマージ、ブランチの削除、ファイルの削除、プルリクエストのマージ、 という名前のリポジトリprod内の という名前mainのブランチへのファイルの追加を拒否しますMyDemoRepo

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "codecommit:GitPush", "codecommit:DeleteBranch", "codecommit:DeleteFile", "codecommit:PutFile", "codecommit:MergeBranchesByFastForward", "codecommit:MergeBranchesBySquash", "codecommit:MergeBranchesByThreeWay", "codecommit:MergePullRequestByFastForward", "codecommit:MergePullRequestBySquash", "codecommit:MergePullRequestByThreeWay" ], "Resource": "arn:aws:codecommit:us-east-2:111111111111:MyDemoRepo", "Condition": { "StringEqualsIfExists": { "codecommit:References": [ "refs/heads/main", "refs/heads/prod" ] }, "Null": { "codecommit:References": "false" } } } ] }

    Git のブランチは、ヘッドコミットの SHA-1 値へのポインタ (参照) にすぎないため、条件は を使用しますReferences。効果が Null で、Deny がアクションの 1 つであるポリシーでは、GitPush ステートメントが必要です。これは、ローカルリポジトリから CodeCommit に変更をプッシュするときに、Git と git-receive-pack がどのように動作するかによって必要となります。

    ヒント

    Amazon Web Services アカウントのすべてのリポジトリで main という名前のすべてのブランチに適用されるポリシーを作成するには、 の値をリポジトリResourceからアスタリスク () ARN に変更します*

  5. [ポリシーの確認] を選択します。ポリシーステートメントのエラーを修正し、[ポリシーの作成] に進みます。

  6. JSON が検証されると、ポリシーの作成ページが表示されます。[概要] セクションに、このポリシーによってアクセス許可が付与されないことを示す警告が表示されます。これは通常の動作です。

    • [Name] (名前) に、このポリシーの名前 (例: DenyChangesToMain) を入力します。

    • [説明] に、ポリシーの目的の説明を入力します。これはオプションですが推奨されます。

    • [ポリシーの作成] を選択します。

IAM グループまたはロールに IAM ポリシーを適用する

ブランチへのプッシュとマージを制限するポリシーを作成しましたが、そのポリシーは IAM ユーザー、グループ、またはロールに適用するまで効果がありません。ベストプラクティスとして、IAM グループまたはロールにポリシーを適用することを検討してください。個々のユーザーと IAM ユーザーにポリシーを適用しても、うまくスケールされません。

条件付きポリシーをグループまたはロールに適用するには
  1. にサインイン AWS Management Console し、 で IAMコンソールを開きますhttps://console.aws.amazon.com/iam/

  2. ポリシーを IAM グループに適用する場合は、ナビゲーションペインで [グループ] を選択し、ユーザーが引き受けるロールにこのポリシーを適用する場合は、[ロール] を選択します。グループまたはロールの名前を選択します。

  3. [Permissions] タブで [Attach Policy] を選択します。

  4. 作成した条件付きポリシーをポリシーのリストから選択し、[ポリシーのアタッチ] を選択します。

詳細については、「IAM ポリシーをアタッチおよびデタッチする」を参照してください。

ポリシーのテスト

グループまたはロールに適用したポリシーの効果をテストして、期待どおりに機能するようにする必要があります。その方法は数多くあります たとえば、上記のようなポリシーをテストするには、以下のようにします。

  • ポリシーが適用された IAMグループのメンバーである ユーザー、またはポリシーが適用されたロールを引き受ける IAM ユーザーを使用して、 CodeCommit コンソールにサインインします。コンソールで、制限が適用されるブランチにファイルを追加します。そのブランチにファイルを保存またはアップロードしようとすると、エラーメッセージが表示されます。ファイルを別のブランチに追加します。これで、オペレーションが成功します。

  • ポリシーが適用された IAMグループのメンバーである ユーザー、またはポリシーが適用されたロールを引き受ける IAM ユーザーを使用して、 CodeCommit コンソールにサインインします。制限が適用されるブランチにマージするプルリクエストを作成します。プルリクエストを作成できるはずですが、マージしようとするとエラーが発生します。

  • ターミナルまたはコマンドラインから、制限が適用されるブランチにコミットを作成し、そのコミットを CodeCommit リポジトリにプッシュします。エラーメッセージが表示されます。他のブランチからのコミットとプッシュはいつものように動作するはずです。

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.