AWS CodeBuild での Identity and Access Management - AWS CodeBuild

AWS CodeBuild での Identity and Access Management

AWS CodeBuild へのアクセスには、認証情報が必要です。認証情報は、S3 バケットのビルドアーティファクトを保存、取得したり、ビルドのために Amazon CloudWatch Logs を表示したりするために、AWS リソースへの許可を必要とします。以下のセクションでは、AWS Identity and Access Management (IAM) と CodeBuild を使用してリソースに安全にアクセスする方法について説明します。

認証

AWS には、次のタイプのアイデンティティでアクセスできます。

  • AWS アカウントのルートユーザー – AWS にサインアップするときは、AWS アカウントに関連付けられた E メールアドレスとパスワードを指定します。これらはルート認証情報であり、これらの情報を使用すると、すべての AWS リソースへの完全なアクセスが可能になります。

    重要

    セキュリティ上の理由から、ルート認証情報は、AWS アカウントへの完全なアクセス許可を持つIAM ユーザーである管理者ユーザーを作成するためにのみ使用することをお勧めします。その後、この管理者ユーザーを使用して、制限されたアクセス許可を持つ他の IAM ユーザーとロールを作成できます。詳細については、[IAM ユーザーガイド][IAM ベストプラクティス]および[管理者ユーザーおよびグループの作成]を参照してください。

  • IAM ユーザーIAM ユーザーは、カスタム許可 (例えば、CodeBuild でビルドプロジェクトを作成する許可) を持つ AWS アカウントの ID です。IAM のユーザー名とパスワードは、AWS Management ConsoleAWS ディスカッションフォーラム、または AWS Support センターなどのセキュアな AWS ウェブページへのサインインに使用できます。

    ユーザー名とパスワードに加えて、各ユーザーのアクセスキーを作成することもできます。これらのキーは、AWS[AWS SDK のひとつ] または (AWS Command Line Interface)AWS CLI を使って、プログラムでサービスにアクセスするときに使用できます。AWS SDK と AWS CLI ツールでは、アクセスキーを使用してリクエスト暗号署名を行います。AWS ツールを使用しない場合は、リクエストに自分で署名する必要があります。CodeBuild では、署名バージョン 4 がサポートされています。これは、インバウンド API リクエストを認証するためのプロトコルです。リクエストの認証の詳細については、[AWS 全般的なリファレンス][署名バージョン 4 署名プロセス]を参照してください。

  • IAM ロール[IAM ロール]は IAM ユーザーに似ていますが、特定のユーザーに関連付けられていません。IAM ロールでは、AWS のサービスおよびリソースにアクセスするために使用できる一時的なアクセスキーを取得することができます。IAM ロールと一時的な認証情報は、次の状況で役立ちます。

    • フェデレーティッドユーザーアクセス – IAM ユーザーを作成するのではなく、AWS Directory Service、エンタープライズユーザーディレクトリ、またはウェブアイデンティティプロバイダーの既存のユーザーアイデンティティを使用することもできます。このようなユーザーはAWSフェデレーティッドユーザーと呼ばれます。 は、アイデンティティプロバイダー経由でアクセスがリクエストされると、フェデレーティッドユーザーにロールを割り当てます。フェデレーティッドユーザーの詳細については、「IAM User Guide」(IAM ユーザーガイド) の「Federated Users and Roles」(フェデレーティッドユーザーとロール) を参照してください。

    • [クロスアカウントアクセス] – アカウントの IAM ロールを使用して、アカウントのリソースにアクセスするための権限を別の AWS アカウントに付与することができます。この例については、[IAM ユーザーガイド][チュートリアル: AWS アカウント間の IAM ロールを使用したアクセスの委任]」を参照してください。

    • AWS のサービスのアクセス – アカウントで IAM ロールを使用して、アカウントのリソースにアクセスするために AWS のサービスに許可を付与できます。たとえば、Amazon Redshift がお客様に代わってバケットにアクセスし、S3 バケットに保存されたデータを Amazon Redshift クラスターにロードすることを許可するロールを作成できます。詳細については、[IAM ユーザーガイド][AWS サービスにアクセス権限を委任するロールの作成]を参照してください。

    • Amazon EC2 で実行されるアプリケーション – インスタンスで実行するアプリケーションが、AWS API リクエストを行う時に使用するアクセスキーを Amazon EC2 インスタンスに保存する代わりに、IAM ロールを使用して、これらのアプリケーション用の一時認証情報を管理することができます。AWS ロールを Amazon EC2 インスタンスに割り当て、そのロールをすべてのアプリケーションで使用できるようにするには、インスタンスにアタッチされるインスタンスプロファイルを作成します。インスタンスプロファイルにはロールが含まれ、Amazon EC2 インスタンスで実行されるプログラムは一時認証情報を取得することができます。詳細については、[IAM ユーザーガイド][Amazon EC2 上のアプリケーションに対するロールの使用]を参照してください。

アクセスコントロール

有効な認証情報があればリクエストを認証できますが、許可を持っていないかぎり AWS CodeBuild リソースの作成やアクセスはできません。たとえば、ビルドプロジェクトの作成、表示、削除、および、ビルドの開始、停止、表示には、アクセス許可が必要です。

以下のセクションでは、CodeBuild のアクセス許可を管理する方法について説明します。最初に概要のセクションを読むことをお勧めします。