翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS CodeArtifact のアイデンティティベースのポリシーの例
デフォルトでは、ユーザーとロールには CodeArtifact リソースを作成または変更するアクセス許可がありません。また、、 AWS Command Line Interface (AWS CLI) AWS Management Console、または AWS API を使用してタスクを実行することはできません。必要なリソースに対してアクションを実行するアクセス許可をユーザーに付与するには、IAM 管理者は IAM ポリシーを作成できます。その後、管理者は IAM ポリシーをロールに追加し、ユーザーはロールを引き受けることができます。
これらのサンプル IAM ポリシードキュメントを使用して JSON アイデンティティベースのポリシーを作成する方法については、Word IAMユーザーガイドのIAM ポリシーの作成 (コンソール)」を参照してください。
各リソースタイプの ARNs の形式など、 CodeArtifact で定義されるアクションとリソースタイプの詳細については、「サービス認可リファレンス」のAWS CodeArtifact のアクション、リソース、および条件キー」を参照してください。
トピック
ポリシーのベストプラクティス
ID ベースのポリシーは、アカウント内の CodeArtifact リソースを作成、アクセス、または削除できるかどうかを決定します。これらのアクションを実行すると、 AWS アカウントに料金が発生する可能性があります。アイデンティティベースポリシーを作成したり編集したりする際には、以下のガイドラインと推奨事項に従ってください:
-
AWS マネージドポリシーを開始し、最小権限のアクセス許可に移行 – ユーザーとワークロードにアクセス許可を付与するには、多くの一般的なユースケースにアクセス許可を付与するAWS マネージドポリシーを使用します。これらは で利用できます AWS アカウント。ユースケースに固有の AWS カスタマー管理ポリシーを定義することで、アクセス許可をさらに減らすことをお勧めします。詳細については、IAM ユーザーガイド」のAWS 「 管理ポリシー」またはAWS 「 ジョブ機能の 管理ポリシー」を参照してください。
-
最小権限のアクセス許可を適用する - IAM ポリシーでアクセス許可を設定する場合、タスクの実行に必要なアクセス許可のみを付与します。これを行うには、特定の条件下で特定のリソースに対して実行できるアクションを定義します。これは、最小特権アクセス許可とも呼ばれています。IAM を使用してアクセス許可を適用する方法の詳細については、Word IAMユーザーガイドのIAM のポリシーとアクセス許可」を参照してください。
-
IAM ポリシーの条件を使用してアクセスをさらに制限する – ポリシーに条件を追加して、アクションとリソースへのアクセスを制限できます。例えば、ポリシー条件を記述して、すべてのリクエストを SSL を使用して送信する必要があることを指定できます。条件を使用して AWS のサービス、サービスアクションが などの特定の を通じて使用されている場合に、サービスアクションへのアクセスを許可することもできます AWS CloudFormation。詳細については、IAM ユーザーガイドのJSON「Word ポリシー要素: 条件」を参照してください。 IAM
-
IAM Access Analyzer を使用して IAM ポリシーを検証し、安全で機能的なアクセス許可を確保します。IAM Access Analyzer は、ポリシーが IAM ポリシー言語 (JSON) と IAM のベストプラクティスに準拠するように、新規および既存のポリシーを検証します。IAM Access Analyzer には、安全で機能的なポリシーの作成に役立つ 100 を超えるポリシーチェックと実用的な推奨事項が用意されています。詳細については、IAM ユーザーガイドの「Word Access Analyzer を使用したポリシーの検証」を参照してください。 IAM
-
多要素認証 (MFA) が必要 – に IAM ユーザーまたはルートユーザーを必要とするシナリオがある場合は AWS アカウント、MFA をオンにしてセキュリティを強化します。MFA オペレーションが呼び出されたときに API を要求するには、ポリシーに MFA 条件を追加します。詳細については、API ユーザーガイドのMFA を使用した Secure Word アクセス」を参照してください。 IAM
IAM のベストプラクティスの詳細については、Word ユーザーガイドのIAM のセキュリティのベストプラクティス」を参照してください。 IAM
CodeArtifact コンソールの使用
AWS CodeArtifact コンソールにアクセスするには、最小限のアクセス許可が必要です。これらのアクセス許可により、 内の CodeArtifact リソースの詳細を一覧表示して表示できます AWS アカウント。最小限必要な許可よりも制限が厳しいアイデンティティベースのポリシーを作成すると、そのポリシーを持つエンティティ (ユーザーまたはロール) に対してコンソールが意図したとおりに機能しません。
AWS CLI または AWS API に対してのみ呼び出しを行うユーザーに対して、最小限のコンソールアクセス許可を付与する必要はありません。代わりに、実行しようとしている API オペレーションに一致するアクションにのみアクセスを許可します。
ユーザーとロールが引き続き CodeArtifact コンソールを使用できるようにするには、 AWSCodeArtifactAdminAccess
または AWSCodeArtifactReadOnlyAccess
AWS マネージドポリシーをエンティティにアタッチします。詳細については、IAM ユーザーガイドの「ユーザーへのアクセス許可の追加」を参照してください。
AWS の AWS CodeArtifact 管理 (事前定義) ポリシー
AWS は、 によって作成および管理されるスタンドアロン IAM ポリシーを提供することで、多くの一般的なユースケースに対応します AWS。これらの AWS マネージドポリシーは、一般的なユースケースに必要なアクセス許可を付与するため、必要なアクセス許可を調査する必要がなくなります。詳細については、AWS ユーザーガイドの「Word マネージドポリシー」を参照してください。 IAM
アカウント内のユーザーにアタッチできる次の AWS 管理ポリシーは、 AWS CodeArtifact に固有のものです。
-
AWSCodeArtifactAdminAccess
— administrate CodeArtifact ドメインへのアクセス許可を含む CodeArtifact へのフルアクセスを提供します。{ "Version": "2012-10-17", "Statement": [ { "Action": [ "codeartifact:*" ], "Effect": "Allow", "Resource": "*" }, { "Effect": "Allow", "Action": "sts:GetServiceBearerToken", "Resource": "*", "Condition": { "StringEquals": { "sts:AWSServiceName": "codeartifact.amazonaws.com" } } } ] }
-
AWSCodeArtifactReadOnlyAccess
— CodeArtifact への読み取り専用アクセスを提供します。{ "Version": "2012-10-17", "Statement": [ { "Action": [ "codeartifact:Describe*", "codeartifact:Get*", "codeartifact:List*", "codeartifact:ReadFromRepository" ], "Effect": "Allow", "Resource": "*" }, { "Effect": "Allow", "Action": "sts:GetServiceBearerToken", "Resource": "*", "Condition": { "StringEquals": { "sts:AWSServiceName": "codeartifact.amazonaws.com" } } } ] }
CodeArtifact サービスロールを作成および管理するには、 という名前 AWS の管理ポリシーもアタッチする必要がありますIAMFullAccess
。
また、独自のカスタム IAM ポリシーを作成して、 CodeArtifact アクションとリソースのアクセス許可を許可することもできます。これらのカスタムポリシーは、これらのアクセス許可を必要とする IAM ユーザーまたはグループにアタッチできます。
ユーザーが自分の許可を表示できるようにする
この例では、IAM ユーザーがユーザー ID にアタッチされているインラインポリシーとマネージドポリシーを表示できるようにするポリシーを作成する方法を示します。このポリシーには、コンソールで、または AWS CLI or AWS API を使用してプログラムでこのアクションを実行するアクセス許可が含まれています。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }
リポジトリやドメインに関する情報の取得をユーザーに許可する
次のポリシーでは、IAM ユーザーまたはロールがドメイン、リポジトリ、パッケージ、アセットなど、あらゆる種類の CodeArtifact リソースを一覧表示して記述することを許可します。このポリシーには、プリンシパルが a CodeArtifact リポジトリからパッケージを取得できるようにする codeArtifact:ReadFromRepository
アクセス許可も含まれています。新しいドメインやリポジトリの作成は許可せず、新しいパッケージの公開も許可しません。
API GetAuthorizationToken
を呼び出すには、 codeartifact:GetAuthorizationToken
および アクセスsts:GetServiceBearerToken
許可が必要です。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codeartifact:List*", "codeartifact:Describe*", "codeartifact:Get*", "codeartifact:Read*" ], "Resource": "*" }, { "Effect": "Allow", "Action": "sts:GetServiceBearerToken", "Resource": "*", "Condition": { "StringEquals": { "sts:AWSServiceName": "codeartifact.amazonaws.com" } } } ] }
特定のドメインに関する情報の取得をユーザーに許可する
us-east-2
リージョンにあり、123456789012
のアカウントで、名前が my
で始まるドメインについての情報のみをユーザーがリストアップすることを許可するアクセス許可ポリシーの例を次に示します。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codeartifact:ListDomains", "Resource": "arn:aws:codeartifact:us-east-2:123456789012:domain/my*" } ] }
特定のリポジトリに関する情報の取得をユーザーに許可する
test
で終わるリポジトリおよびそれに含まれるパッケージに関する情報をユーザーが取得できるようにするアクセス許可ポリシーの例を以下に示します。ユーザーは、リソースを発行したり、作成したり、削除することができなくなります。
API GetAuthorizationToken
を呼び出すには、 codeartifact:GetAuthorizationToken
および アクセスsts:GetServiceBearerToken
許可が必要です。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codeartifact:List*", "codeartifact:Describe*", "codeartifact:Get*", "codeartifact:Read*" ], "Resource": "arn:aws:codeartifact:*:*:repository/*/*test" }, { "Effect": "Allow", "Action": [ "codeartifact:List*", "codeartifact:Describe*" ], "Resource": "arn:aws:codeartifact:*:*:package/*/*test/*/*/*" }, { "Effect": "Allow", "Action": "sts:GetServiceBearerToken", "Resource": "*", "Condition": { "StringEquals": { "sts:AWSServiceName": "codeartifact.amazonaws.com" } } }, { "Effect": "Allow", "Action": "codeartifact:GetAuthorizationToken", "Resource": "*" } ] }
認可トークンの期間の制限
パッケージバージョンを発行または使用するには、認可トークンを使用して to CodeArtifact を認証する必要があります。認可トークンは、設定された有効期間中にのみ有効です。トークンの有効期間はデフォルトで 12 時間となっています。認可レスポンスの詳細については、「AWS CodeArtifact 認証とトークン」を参照してください。
トークンを取得するときに、ユーザーはトークンの有効期間を設定できます。認可トークンの有効期間の有効な値は で0
、 900
(15 分) から 43200
(12 時間) までの任意の数値です。0
の値は、ユーザーのロールの一時的な認証情報に等しい期間を持つトークンを作成します。
管理者は、ユーザーまたはグループにアタッチされたアクセス許可ポリシーの条件sts:DurationSeconds
キーを使用して、認可トークンの有効期間の有効な値を制限できます。有効値以外の有効期間を持つ認可トークンをユーザーが作成しようとすると、トークンの作成は失敗します。
次のポリシー例では、 CodeArtifact ユーザーが作成した認可トークンの可能な期間を制限しています。
ポリシー例:トークンの有効期間を 12 時間 (43200 秒) ちょうどに制限する
このポリシーを使用すると、ユーザーは有効期間が 12 時間の認可トークンしか作成することができません。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codeartifact:*", "Resource": "*" }, { "Sid": "sts", "Effect": "Allow", "Action": "sts:GetServiceBearerToken", "Resource": "*", "Condition": { "NumericEquals": { "sts:DurationSeconds": 43200 }, "StringEquals": { "sts:AWSServiceName": "codeartifact.amazonaws.com" } } } ] }
ポリシー例:トークンの有効期間を 15 分から 1 時間、またはユーザーの一時的な認証情報期間と等しい時間に制限する
このポリシーにより、ユーザーは 15 分から 1 時間の間で有効なトークンを作成することができます。また、ユーザーは、--durationSeconds
に対して0
を指定することで、ロールの一時的な認証情報の有効期間を保持するトークンを作成することもできます。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codeartifact:*", "Resource": "*" }, { "Sid": "sts", "Effect": "Allow", "Action": "sts:GetServiceBearerToken", "Resource": "*", "Condition": { "NumericLessThanEquals": { "sts:DurationSeconds": 3600 }, "StringEquals": { "sts:AWSServiceName": "codeartifact.amazonaws.com" } } } ] }