How AWS CodeArtifact が IAM で動作する方法 - CodeArtifact

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

How AWS CodeArtifact が IAM で動作する方法

IAM を使用して CodeArtifact へのアクセスを管理する前に、 CodeArtifact で使用できる IAM の機能について説明します。

CodeArtifact およびその他の AWS サービスがほとんどの IAM 機能をどのように動作するかの概要については、Word IAMユーザーガイドAWS IAM を使用するサービス」を参照してください。

CodeArtifact のアイデンティティベースのポリシー

アイデンティティベースのポリシーのサポート: あり

ID ベースのポリシーは、JSON ユーザー、ユーザーのグループ、ロールなどの ID にアタッチできる IAM アクセス許可ポリシードキュメントです。これらのポリシーは、ユーザーとロールが実行できるアクション、リソース、および条件をコントロールします。ID ベースのポリシーを作成する方法については、IAM ユーザーガイド」の「カスタマーマネージドポリシーを使用したカスタム Word アクセス許可の定義」を参照してください。 IAM

IAM アイデンティティベースのポリシーでは、許可または拒否されたアクションとリソース、およびアクションが許可または拒否される条件を指定できます。プリンシパルは、それが添付されているユーザーまたはロールに適用されるため、アイデンティティベースのポリシーでは指定できません。JSON ポリシーで使用できるすべての要素については、IAM ユーザーガイドのJSON「Word ポリシー要素のリファレンス」を参照してください。 IAM

CodeArtifact のアイデンティティベースのポリシーの例

CodeArtifact アイデンティティベースのポリシーの例を表示するには、「」を参照してくださいAWS CodeArtifact のアイデンティティベースのポリシーの例

CodeArtifact 内のリソースベースのポリシー

リソースベースのポリシーのサポート: はい

リソースベースのポリシーは、リソースにアタッチする JSON ポリシードキュメントです。リソースベースのポリシーの例としては、IAM ロールの信頼ポリシーと Amazon S3 バケットポリシーがあります。リソースベースのポリシーをサポートするサービスでは、サービス管理者はポリシーを使用して特定のリソースへのアクセスをコントロールできます。ポリシーがアタッチされているリソースの場合、指定されたプリンシパルがそのリソースに対して実行できるアクションと条件は、ポリシーによって定義されます。リソースベースのポリシーでは、プリンシパルを指定する必要があります。プリンシパルには、アカウント、ユーザー、ロール、フェデレーティッドユーザー、または を含めることができます AWS のサービス。

クロスアカウントアクセスを有効にするには、リソースベースのポリシーのプリンシパルとして、別のアカウントのアカウント全体または IAM エンティティを指定できます。リソースベースのポリシーにクロスアカウントのプリンシパルを追加しても、信頼関係は半分しか確立されない点に注意してください。プリンシパルとリソースが異なる場合 AWS アカウント、信頼されたアカウントの IAM 管理者は、プリンシパルエンティティ (ユーザーまたはロール) にリソースへのアクセス許可も付与する必要があります。IAM 管理者は、アイデンティティベースのポリシーをエンティティにアタッチすることで権限を付与します。ただし、リソースベースのポリシーで、同じアカウントのプリンシパルへのアクセス権が付与されている場合は、アイデンティティベースのポリシーをさらに付与する必要はありません。詳細については、IAM ユーザーガイドの「Word でのクロスアカウントリソースアクセス」を参照してください。 IAM

CodeArtifact のポリシーアクション

ポリシーアクションのサポート: あり

管理者は、 AWS JSON ポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件下でアクションを実行できるかということです。

JSON ポリシーの Action要素では、ポリシー内のアクセスを許可または拒否するために使用できるアクションについて説明します。ポリシーアクションは通常、関連付けられた AWS API オペレーションと同じ名前です。一致する API オペレーションがないアクセス許可のみのアクションなど、いくつかの例外があります。また、ポリシーに複数のアクションが必要なオペレーションもあります。これらの追加アクションは、依存アクションと呼ばれます。

このアクションは、関連付けられたオペレーションを実行するための権限を付与するポリシーで使用されます。

CodeArtifact アクションのリストを表示するには、「サービス認可リファレンス」のAWS CodeArtifact で定義されるアクション」を参照してください。

in CodeArtifact のポリシーアクションでは、アクションの前に次のプレフィックスを使用します。

codeartifact

単一のステートメントで複数のアクションを指定するには、アクションをカンマで区切ります。

"Action": [ "codeartifact:action1", "codeartifact:action2" ]

ワイルドカード (*) を使用して複数アクションを指定できます。例えば、Describe という単語で始まるすべてのアクションを指定するには、次のアクションを含めます。

"Action": "codeartifact:Describe*"

CodeArtifact アイデンティティベースのポリシーの例を表示するには、「」を参照してくださいAWS CodeArtifact のアイデンティティベースのポリシーの例

CodeArtifact のポリシーリソース

ポリシーリソースのサポート: あり

管理者は、 AWS JSON ポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件下でアクションを実行できるかということです。

Resource JSON ポリシー要素は、アクションが適用されるオブジェクトを指定します。ステートメントには、Resource または NotResource 要素を含める必要があります。ベストプラクティスとして、Amazon リソースネーム (ARN) を使用してリソースを指定します。これは、リソースレベルの許可と呼ばれる特定のリソースタイプをサポートするアクションに対して実行できます。

オペレーションのリスト化など、リソースレベルの権限をサポートしないアクションの場合は、ステートメントがすべてのリソースに適用されることを示すために、ワイルドカード (*) を使用します。

"Resource": "*"

CodeArtifact リソースタイプとその ARNs のリストを確認するには、「サービス認可リファレンス」のAWS CodeArtifact で定義されるリソース」を参照してください。各リソースの ARN を指定できるアクションについては、AWS CodeArtifact で定義されるアクション」を参照してください。ポリシーで CodeArtifact リソース ARNs を指定する例については、「」を参照してくださいAWS CodeArtifact リソースとオペレーション

CodeArtifact のポリシー条件キー

サービス固有のポリシー条件キーのサポート: なし

管理者は、 AWS JSON ポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どのプリンシパルが、どのリソースに対してどのような条件下でアクションを実行できるかということです。

Condition 要素 (または Condition ブロック) を使用すると、ステートメントが有効な条件を指定できます。Condition 要素はオプションです。イコールや未満などの条件演算子を使用して条件式を作成することで、ポリシーの条件とリクエスト内の値を一致させることができます。

1 つのステートメントに複数の Condition 要素を指定する場合、または 1 つの Condition 要素に複数のキーを指定する場合、 AWS では AND 論理演算子を使用してそれらを評価します。1 つの条件キーに複数の値を指定すると、 は論理ORオペレーションを使用して条件 AWS を評価します。ステートメントの権限が付与される前にすべての条件が満たされる必要があります。

条件を指定する際にプレースホルダー変数も使用できます。例えば、IAM ユーザー名でタグ付けされている場合にのみ、リソースにアクセスするアクセス許可を IAM ユーザーに付与できます。詳細については、IAM ユーザーガイドの「Word ポリシー要素: 変数とタグ」を参照してください。 IAM

AWS は、グローバル条件キーとサービス固有の条件キーをサポートしています。すべての AWS グローバル条件キーを確認するには、IAM ユーザーガイドAWS 「グローバル条件コンテキストキー」を参照してください。

注記

AWS CodeArtifact は、次の AWS グローバル条件コンテキストキーをサポートしていません。

CodeArtifact 条件キーのリストを確認するには、「サービス認可リファレンス」の AWS CodeArtifact の条件キー」を参照してください。条件キーを使用できるアクションとリソースについては、AWS CodeArtifact で定義されるアクション」を参照してください。

CodeArtifact アイデンティティベースのポリシーの例を表示するには、「」を参照してくださいAWS CodeArtifact のアイデンティティベースのポリシーの例

ACLs の CodeArtifact

ACLs: No をサポート

アクセスコントロールリスト (ACLs) は、どのプリンシパル (アカウントメンバー、ユーザー、またはロール) がリソースにアクセスするアクセス許可を持っているかを制御します。ACLs はリソースベースのポリシーに似ていますが、JSON ポリシードキュメント形式を使用していません。

ABAC を使用した CodeArtifact

ABAC (ポリシーのタグ): 部分的をサポート

属性ベースのアクセスコントロール (ABAC) は、属性に基づいてアクセス許可を定義する認可戦略です。では AWS、これらの属性はタグと呼ばれます。タグは IAM エンティティ (ユーザーまたはロール) および多くの AWS リソースにアタッチできます。エンティティとリソースのタグ付けは ABAC の最初のステップです。次に、プリンシパルのタグがアクセスしようとしているリソースのタグと一致する場合に、オペレーションを許可する ABAC ポリシーを設計します。

ABAC は、急速に成長している環境や、ポリシー管理が煩雑になる状況に役立ちます。

タグに基づいてアクセスを管理するには、aws:ResourceTag/key-nameaws:RequestTag/key-name、または aws:TagKeys の条件キーを使用して、ポリシーの 条件要素でタグ情報を提供します。

サービスがすべてのリソースタイプに対して 3 つの条件キーすべてをサポートする場合、そのサービスの値はありです。サービスが一部のリソースタイプに対してのみ 3 つの条件キーのすべてをサポートする場合、値は「部分的」になります。

ABAC の詳細については、Word IAMユーザーガイドABAC 認可によるアクセス許可の定義」を参照してください。ABAC を設定する手順を含むチュートリアルを表示するには、Word IAMユーザーガイド「属性ベースのアクセスコントロール (ABAC) を使用する」を参照してください。

リソースのタグに基づいてリソースへのアクセスを制限するための ID ベースのポリシーの例など、Tagging CodeArtifact リソースの詳細については、「」を参照してくださいタグを使用した CodeArtifact リソースへのアクセスのコントロール

CodeArtifact での一時的な認証情報の使用

一時的な認証情報のサポート: あり

一部の AWS のサービス は、一時的な認証情報を使用してサインインすると機能しません。一時的な認証情報 AWS のサービス を使用する方法などの詳細については、AWS のサービス IAM ユーザーガイドの Word を使用する方法を参照してください。 IAM

ユーザー名とパスワード以外の AWS Management Console 方法で にサインインする場合は、一時的な認証情報を使用します。例えば、会社のシングルサインオン (SSO) リンク AWS を使用して にアクセスすると、そのプロセスによって一時的な認証情報が自動的に作成されます。また、ユーザーとしてコンソールにサインインしてからロールを切り替える場合も、一時的な認証情報が自動的に作成されます。ロールの切り替えの詳細については、Word IAMユーザーガイド「ユーザーから IAM ロールへの切り替え (コンソール)」を参照してください。

AWS CLI or AWS API を使用して一時的な認証情報を手動で作成できます。その後、これらの一時的な認証情報を使用して access AWS. AWS recommends にアクセスすることができます。長期アクセスキーを使用する代わりに、一時的な認証情報を動的に生成することをお勧めします。詳細については、IAM の「一時的なセキュリティ認証情報」を参照してください。

CodeArtifact のクロスサービスプリンシパルアクセス許可

転送アクセスセッション (FAS): はい

IAM ユーザーまたはロールを使用して でアクションを実行する場合 AWS、プリンシパルと見なされます。一部のサービスを使用する際に、アクションを実行することで、別のサービスの別のアクションがトリガーされることがあります。FAS は、 を呼び出すプリンシパルのアクセス許可を AWS のサービス、ダウンストリームサービス AWS のサービス へのリクエストリクエストと組み合わせて使用します。FAS リクエストは、サービスが他の AWS のサービス または リソースとのやり取りを完了する必要があるリクエストを受け取った場合にのみ行われます。この場合、両方のアクションを実行するための権限が必要です。FAS リクエストを行う際のポリシーの詳細については、「アクセスセッションを転送する」を参照してください。

呼び出し元プリンシパルが他の サービスでアクセス許可を持つことを要求する 2 つの CodeArtifact API Wordアクションがあります。

  1. GetAuthorizationToken では sts:GetServiceBearerTokencodeartifact:GetAuthorizationToken が必要です。

  2. CreateDomainは、デフォルト以外の暗号化キーを提供する場合、 とともに KMS キーkms:CreateGrantkms:DescribeKeyと の両方を必要としますcodeartifact:CreateDomain

CodeArtifact でのアクションに必要なアクセス許可とリソースの詳細については、「」を参照してくださいAWS CodeArtifact アクセス許可リファレンス

CodeArtifact のサービスロール

サービスロールのサポート: なし

サービスロールは、サービスがユーザーに代わってアクションを実行するために引き受ける IAM ロールです。IAM 管理者は、IAM 内からサービスロールを作成、変更、削除できます。詳細については、IAM ユーザーガイド「 に権限を委任するロールを作成する AWS のサービス」を参照してください。

警告

サービスロールのアクセス許可を変更すると、 CodeArtifact 機能が壊れる可能性があります。サービスロールを編集するのは、 CodeArtifact がガイダンスを提供する場合のみです。

CodeArtifact のサービスにリンクされたロール

サービスにリンクされたロールのサポート: なし

サービスにリンクされたロールは、 にリンクされたサービスロールの一種です AWS のサービス。サービスは、ユーザーに代わってアクションを実行するロールを引き受けることができます。サービスにリンクされたロールは に表示され AWS アカウント 、 サービスによって所有されます。IAM 管理者は、サービスにリンクされたロールのアクセス許可を表示することはできますが、編集することはできません。

サービスにリンクされたロールの作成または管理の詳細については、AWS IAM で動作するサービス」を参照してください。表の「サービスリンクロール」列に Yes と記載されたサービスを見つけます。サービスにリンクされたロールに関するドキュメントをサービスで表示するには、[はい] リンクを選択します。