

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Menggunakan tag untuk mengontrol akses ke AWS CodeBuild sumber daya
<a name="auth-and-access-control-using-tags"></a>

Kondisi dalam pernyataan kebijakan IAM adalah bagian dari sintaks yang dapat Anda gunakan untuk menentukan izin untuk CodeBuild tindakan berbasis proyek. Anda dapat membuat kebijakan yang mengizinkan atau menolak tindakan pada proyek berdasarkan tag yang terkait dengan proyek tersebut, lalu menerapkan kebijakan tersebut ke grup IAM yang Anda konfigurasikan untuk mengelola pengguna. Untuk informasi tentang menerapkan tag ke proyek menggunakan konsol atau AWS CLI, lihat[Buat proyek build di AWS CodeBuild](create-project.md). Untuk informasi tentang menerapkan tag menggunakan CodeBuild SDK, lihat [CreateProject ](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_CreateProject.html#API_CreateProject_RequestSyntax)dan [Tag](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_Tag.html) di *Referensi CodeBuild API*. Untuk informasi tentang penggunaan tag untuk mengontrol akses ke AWS sumber daya, lihat [Mengontrol Akses ke AWS Sumber Daya Menggunakan Tag Sumber Daya](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html) di *Panduan Pengguna IAM*.

**penting**  
Saat menggunakan fitur kapasitas cadangan, data yang di-cache pada instance armada, termasuk file sumber, lapisan Docker, dan direktori cache yang ditentukan dalam buildspec, dapat diakses oleh proyek lain dalam akun yang sama. Ini dirancang dan memungkinkan proyek dalam akun yang sama untuk berbagi instance armada.

**Example Contoh 1: Batasi tindakan CodeBuild proyek berdasarkan tag sumber daya**  
 Contoh berikut menyangkal semua `BatchGetProjects` tindakan pada proyek yang ditandai dengan kunci `Environment` dengan nilai kunci. `Production` Administrator pengguna harus melampirkan kebijakan IAM ini selain kebijakan pengguna terkelola untuk pengguna yang tidak sah. Kunci `aws:ResourceTag` kondisi digunakan untuk mengontrol akses ke sumber daya berdasarkan tag mereka.     
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "codebuild:BatchGetProjects"
      ],
      "Resource": "*",
      "Condition": {
        "ForAnyValue:StringEquals": {
          "aws:ResourceTag/Environment": "Production"
        }
      }
    }
  ]
}
```

**Example Contoh 2: Batasi tindakan CodeBuild proyek berdasarkan tag permintaan**  
Kebijakan berikut menolak izin pengguna untuk `CreateProject` tindakan jika permintaan berisi tag dengan kunci `Environment` dan nilai `Production` kunci. Selain itu, kebijakan mencegah pengguna yang tidak sah ini memodifikasi proyek dengan menggunakan kunci `aws:TagKeys` kondisi untuk tidak mengizinkan `UpdateProject` jika permintaan berisi tag dengan kunci. `Environment` Administrator harus melampirkan kebijakan IAM ini selain kebijakan pengguna terkelola kepada pengguna yang tidak berwenang untuk melakukan tindakan ini. Kunci `aws:RequestTag` kondisi digunakan untuk mengontrol tag mana yang dapat diteruskan dalam permintaan IAM    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "codebuild:CreateProject"
      ],
      "Resource": "*",
      "Condition": {
        "ForAnyValue:StringEquals": {
          "aws:RequestTag/Environment": "Production"
        }
      }
    },
    {
      "Effect": "Deny",
      "Action": [
        "codebuild:UpdateProject"
      ],
      "Resource": "*",
      "Condition": {
        "ForAnyValue:StringEquals": {
          "aws:TagKeys": ["Environment"]
        }
      }
    }
  ]
}
```

**Example Contoh 3: Tolak atau izinkan tindakan pada grup laporan berdasarkan tag sumber daya**  
Anda dapat membuat kebijakan yang mengizinkan atau menolak tindakan pada CodeBuild sumber daya (proyek dan grup laporan) berdasarkan AWS tag yang terkait dengan sumber daya tersebut, lalu menerapkan kebijakan tersebut ke grup IAM yang Anda konfigurasikan untuk mengelola pengguna. Misalnya, Anda dapat membuat kebijakan yang menolak semua CodeBuild tindakan pada grup laporan apa pun dengan kunci AWS tag `Status` dan nilai kunci`Secret`, lalu menerapkan kebijakan tersebut ke grup IAM yang Anda buat untuk pengembang umum ()*Developers*. Anda kemudian perlu memastikan bahwa pengembang yang bekerja pada grup laporan yang diberi tag tersebut bukan anggota *Developers* grup umum tersebut, melainkan milik grup IAM yang berbeda yang tidak memiliki kebijakan restriktif yang diterapkan (). `SecretDevelopers`  
Contoh berikut menyangkal semua CodeBuild tindakan pada grup laporan yang ditandai dengan kunci `Status` dan nilai kunci: `Secret`    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "codebuild:BatchGetReportGroups",
        "codebuild:CreateReportGroup",
        "codebuild:DeleteReportGroup",
        "codebuild:ListReportGroups",
        "codebuild:ListReportsForReportGroup",
        "codebuild:UpdateReportGroup"
      ],
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "aws:RequestedRegion": "us-east-1"
        }
      }
    }
  ]
}
```

**Example Contoh 4: Batasi CodeBuild tindakan AWSCode BuildDeveloperAccess berdasarkan tag sumber daya**  
Anda dapat membuat kebijakan yang mengizinkan CodeBuild tindakan pada semua grup laporan dan proyek yang tidak ditandai dengan tag tertentu. Misalnya, kebijakan berikut memungkinkan [AWSCodeBuildDeveloperAccess](auth-and-access-control-iam-identity-based-access-control.md#developer-access-policy) izin yang setara untuk semua grup laporan dan proyek kecuali yang ditandai dengan tag yang ditentukan:    
****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
            "codebuild:StartBuild",
            "codebuild:StopBuild",
            "codebuild:BatchGet*",
            "codebuild:GetResourcePolicy",
            "codebuild:DescribeTestCases",
            "codebuild:List*",
            "codecommit:GetBranch",
            "codecommit:GetCommit",
            "codecommit:GetRepository",
            "codecommit:ListBranches",
            "cloudwatch:GetMetricStatistics",
            "events:DescribeRule",
            "events:ListTargetsByRule",
            "events:ListRuleNamesByTarget",
            "logs:GetLogEvents",
            "s3:GetBucketLocation",
            "s3:ListAllMyBuckets"
         ],
         "Resource": "*",
         "Condition": {
            "StringNotEquals": {
               "aws:ResourceTag/Status": "Secret",
               "aws:ResourceTag/Team": "Saanvi"
            }
         }
      }
   ]
}
```